Справочное описание GLib | ||||
---|---|---|---|---|
Основные типыBasic Types — Стандартные типы GLib, определяемые для простоты использования и переносимости. |
#include <glib.h>
typedef gboolean;
typedef gpointer;
typedef gconstpointer;
typedef gchar;
typedef guchar;
typedef gint;
typedef guint;
typedef gshort;
typedef gushort;
typedef glong;
typedef gulong;
typedef gint8;
typedef guint8;
typedef gint16;
typedef guint16;
typedef gint32;
typedef guint32;
#define G_HAVE_GINT64
typedef gint64;
typedef guint64;
#define G_GINT64_CONSTANT (val)
#define G_GUINT64_CONSTANT (val)
typedef gfloat;
typedef gdouble;
typedef gsize;
typedef gssize;
GLib определяет большое число основных используемых типов, которые можно разделить на 4 группы:
Новые типы которые не являются частью стандарта C - gboolean, gsize, gssize.
Целочисленные типы которые гарантируют одинаковый размер на разных платформах - gint8, guint8, gint16, guint16, gint32, guint32, gint64, guint64.
Типы которые проще использовать чем их стандартные аналоги C - gpointer, gconstpointer, guchar, guint, gushort, gulong.
Типы которые соответствуют существующим стандартным типам C, но являются более полными - gchar, gint, gshort, glong, gfloat, gdouble.
typedef gint gboolean;
Стандартный логический тип.
Переменные этого типа содержат логическое значение TRUE
или FALSE
.
typedef void* gpointer;
Указывает отсутствие типа. gpointer лучше выглядит и удобней в использовании чем void*.
typedef const void *gconstpointer;
Указывает отсутствие типа константных данных. Указанные данные не должны изменяться.
Это обычно используется в прототипах функций для указания что данные не меняются функцией.
typedef int gint;
Соответствует стандартному типу int. Значение этого типа может быть в диапазоне от G_MININT до G_MAXINT.
typedef unsigned int guint;
Соответствует стандартному типу unsigned int. Значение этого типа может быть в диапазоне от 0 до G_MAXUINT.
typedef short gshort;
Соответствует стандартному типу short. Значение этого типа может быть в диапазоне от G_MINSHORT до G_MAXSHORT.
typedef unsigned short gushort;
Соответствует стандартному типу unsigned short. Значение этого типа может быть в диапазоне от 0 до G_MAXUSHORT.
typedef long glong;
Соответствует стандартному типу long. Значение этого типа может быть в диапазоне от G_MINLONG до G_MAXLONG.
typedef unsigned long gulong;
Соответствует стандартному типу unsigned long. Значение этого типа может быть в диапазоне от 0 до G_MAXULONG.
typedef signed char gint8;
Целочисленное со знаком гарантировано равно 8 битам на всех платформах. Значение этого типа может быть в диапазоне от -128 до 127.
typedef unsigned char guint8;
Целочисленное без знака гарантировано равно 8 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 255.
typedef signed short gint16;
Целочисленное со знаком гарантировано равно 16 битам на всех платформах. Значение этого типа может быть в диапазоне от -32,768 до 32,767.
typedef unsigned short guint16;
Целочисленное без знака гарантировано равно 16 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 65,535.
typedef signed int gint32;
Целочисленное со знаком гарантировано равно 32 битам на всех платформах. Значение этого типа может быть в диапазоне от -2,147,483,648 до 2,147,483,647.
typedef unsigned int guint32;
Целочисленное без знака гарантировано равно 32 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 4,294,967,295.
#define G_HAVE_GINT64 1 /* устаревшее, всегда верно */
G_HAVE_GINT64
устарела и не должна использоваться во вновь создаваемом коде. GLib нуждается в поддержке 64-bit целых начиная с версии 2.0, поэтому
G_HAVE_GINT64
всегда определено.
Этот макрос определяется если 64-битные целочисленные со знаком и без поддерживаются этой платформой.
G_GNUC_EXTENSION typedef signed long long gint64;
Целочисленное со знаком гарантировано равно 64 битам на всех платформах. Значение этого типа может быть в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.
G_GNUC_EXTENSION typedef unsigned long long guint64;
Целочисленное без знака гарантировано равно 64 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 18,446,744,073,709,551,615.
#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL))
Этот макрос используется для вставки буквальных 64-bit целочисленных в исходный код.
val : |
буквальное целочисленное значение, например 0x1d636b02300a7aa7U. |
#define G_GUINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##ULL))
Этот макрос используется для вставки буквальных 64-bit целочисленных без знака в исходный код.
val : |
буквальное значение целочисленного, например 0x1d636b02300a7aa7U. |
Начиная с версии 2.10
typedef float gfloat;
Соответствует стандартному типу float. Значение этого типа может быть в диапазоне от -G_MAXFLOAT to G_MAXFLOAT.
typedef double gdouble;
Соответствует стандартному типу double. Значение этого типа может быть в диапазоне от -G_MAXDOUBLE to G_MAXDOUBLE.
typedef unsigned int gsize;
Целочисленное 32-bit без знака, предназначенное представлять размер данных структур.