Почему лучше использовать типы данных Glib (например, `gint` вместо` int`)? - программирование
Подтвердить что ты не робот

Почему лучше использовать типы данных Glib (например, `gint` вместо` int`)?

Возможный дубликат:
Почему glib переопределяет типы?

В учебнике GTK + 2.0 я могу читать здесь следующее утверждение о типах данных:

В предыдущих примерах, которые вы, вероятно, заметили, нужно объяснить. Дин, gchar и т.д., Которые вы видите, являются typedefs для int и char, соответственно, которые являются частью системы GLib. Это делается для того, чтобы обойти эту неприятную зависимость от размера простых типов данных при выполнении вычислений.

Я не понимаю последнюю часть этого объяснения. Почему лучше использовать типы данных Glib?

4b9b3361

Ответ 1

Как упоминается в учебнике, это обеспечивает переносимость. При создании кода, который использует glib для новой системы, вам нужно будет только изменить файл заголовка с помощью typedefs, а не код, который использует эти типы.

В стандарте C99 добавлены типы фиксированной ширины (int8_t, uint32_t и т.д.), что сделает устаревшие типы glib, но glib предшествует стандарту C99, который, вероятно, является причиной того, что он имеет свой собственный набор типов.

Ответ 2

C типы данных являются высокоплатформенными и специфичными для реализации например, int - это размер регистра, char имеет столько же бит, сколько байт, long - означает не меньше, чем int short int составляет как минимум 2 байта, но не требует, чтобы на самом деле было меньше, чем int

Таким образом, использование коротких правильно названных переменных полезно для переносимости.

И как говорится в учебнике GTK 2.0:

Хорошим примером является "gint32", который будет typedef'd для 32-битного целого для любой данной платформы, будь то 64-битная альфа или 32-разрядная i386. Typedefs очень просты и интуитивно понятны. Все они определены в glib/glib.h(который входит в состав gtk.h).

edit: Как сказал Майкл, стандарт C99 делает их устаревшими, предоставляя новые типы