Основные типы

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 группы:

Детали

gboolean

typedef gint gboolean;

Стандартный логический тип. Переменные этого типа содержат логическое значение TRUE или FALSE.


gpointer

typedef void* gpointer;

Указывает отсутствие типа. gpointer лучше выглядит и удобней в использовании чем void*.


gconstpointer

typedef const void *gconstpointer;

Указывает отсутствие типа константных данных. Указанные данные не должны изменяться.

Это обычно используется в прототипах функций для указания что данные не меняются функцией.


gchar

typedef char gchar;

Соответствует стандартному типу char.


guchar

typedef unsigned char guchar;

Соответствует стандартному типу unsigned char.


gint

typedef int gint;

Соответствует стандартному типу int. Значение этого типа может быть в диапазоне от G_MININT до G_MAXINT.


guint

typedef unsigned int guint;

Соответствует стандартному типу unsigned int. Значение этого типа может быть в диапазоне от 0 до G_MAXUINT.


gshort

typedef short gshort;

Соответствует стандартному типу short. Значение этого типа может быть в диапазоне от G_MINSHORT до G_MAXSHORT.


gushort

typedef unsigned short gushort;

Соответствует стандартному типу unsigned short. Значение этого типа может быть в диапазоне от 0 до G_MAXUSHORT.


glong

typedef long glong;

Соответствует стандартному типу long. Значение этого типа может быть в диапазоне от G_MINLONG до G_MAXLONG.


gulong

typedef unsigned long gulong;

Соответствует стандартному типу unsigned long. Значение этого типа может быть в диапазоне от 0 до G_MAXULONG.


gint8

typedef signed char gint8;

Целочисленное со знаком гарантировано равно 8 битам на всех платформах. Значение этого типа может быть в диапазоне от -128 до 127.


guint8

typedef unsigned char guint8;

Целочисленное без знака гарантировано равно 8 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 255.


gint16

typedef signed short gint16;

Целочисленное со знаком гарантировано равно 16 битам на всех платформах. Значение этого типа может быть в диапазоне от -32,768 до 32,767.


guint16

typedef unsigned short guint16;

Целочисленное без знака гарантировано равно 16 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 65,535.


gint32

typedef signed int gint32;

Целочисленное со знаком гарантировано равно 32 битам на всех платформах. Значение этого типа может быть в диапазоне от -2,147,483,648 до 2,147,483,647.


guint32

typedef unsigned int guint32;

Целочисленное без знака гарантировано равно 32 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 4,294,967,295.


G_HAVE_GINT64

#define G_HAVE_GINT64 1 /* устаревшее, всегда верно */

Внимание

G_HAVE_GINT64 устарела и не должна использоваться во вновь создаваемом коде. GLib нуждается в поддержке 64-bit целых начиная с версии 2.0, поэтому G_HAVE_GINT64 всегда определено.

Этот макрос определяется если 64-битные целочисленные со знаком и без поддерживаются этой платформой.


gint64

G_GNUC_EXTENSION typedef signed long long gint64;

Целочисленное со знаком гарантировано равно 64 битам на всех платформах. Значение этого типа может быть в диапазоне от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807.


guint64

G_GNUC_EXTENSION typedef unsigned long long guint64;

Целочисленное без знака гарантировано равно 64 битам на всех платформах. Значение этого типа может быть в диапазоне от 0 до 18,446,744,073,709,551,615.


G_GINT64_CONSTANT()

#define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL))

Этот макрос используется для вставки буквальных 64-bit целочисленных в исходный код.

val : буквальное целочисленное значение, например 0x1d636b02300a7aa7U.

G_GUINT64_CONSTANT()

#define G_GUINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##ULL))

Этот макрос используется для вставки буквальных 64-bit целочисленных без знака в исходный код.

val : буквальное значение целочисленного, например 0x1d636b02300a7aa7U.

Начиная с версии 2.10


gfloat

typedef float gfloat;

Соответствует стандартному типу float. Значение этого типа может быть в диапазоне от -G_MAXFLOAT to G_MAXFLOAT.


gdouble

typedef double gdouble;

Соответствует стандартному типу double. Значение этого типа может быть в диапазоне от -G_MAXDOUBLE to G_MAXDOUBLE.


gsize

typedef unsigned int gsize;

Целочисленное 32-bit без знака, предназначенное представлять размер данных структур.


gssize

typedef signed int gssize;

Целочисленное 32-bit со знаком, предназначенное представлять размер данных структур.