10
Jakie jest uzasadnienie typów, które zostaną ponownie zdefiniowane w GLib? Dlaczego przekształcają char
w gchar
, int
w gint
itd.?Dlaczego GLib przedefiniuje typy?
Jakie jest uzasadnienie typów, które zostaną ponownie zdefiniowane w GLib? Dlaczego przekształcają char
w gchar
, int
w gint
itd.?Dlaczego GLib przedefiniuje typy?
Zapoznaj się z Basic Types w dokumentacji GLib. Zasadniczo ma to zagwarantować, że pewne typy będą istniały z pewną semantyką, niezależnie od tego, który kompilator C lub platformę używasz. Typy, które mimo to gwarantują, to: typedef
ed tylko po to, aby wszystkie nazwy typów wyglądały jednolicie.
Więc powód, aby przekształcić char w gchar jest tak, aby wyglądał ładniej? – Lucas
W pewnym sensie, ale głównie dlatego, że int na przykład może nie być takie samo na wszystkich systemach, gint8 zawsze będzie mieć 8 bitów. – Dave
Chyba. Niektóre gpsy (prawdopodobnie) dają dodatkową semantykę nad prostym typem, ale myślę, że reszta to tylko konsekwencja i przenośność. Pamiętaj też, że GLib pochodzi z 1999 roku, wyprzedzając powszechną dostępność typów takich jak 'uint64_t', dlatego też przetasują własne. –