基本类型

基本类型 — GLib 标准类型, 定义的非常易用和简便

Synopsis

#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;
typedef             goffset;
#define             G_GOFFSET_CONSTANT                  (val)

typedef             gintptr;
typedef             guintptr;

Description

GLib定义的这些普通的适用类型,分为了4组:

Details

gboolean

typedef gint   gboolean;

标准 boolean 类型. 它只储存两个值:TRUE or FALSE.


gpointer

typedef void* gpointer;

无类型的指针。 gpointervoid*更易理解和更好用.


gconstpointer

typedef const void *gconstpointer;

一个常数的无类型指针。指针的值不能被更改。

典型的使用在子函数原型上,指出指针所指向的数据是不能被函数更改的。


gchar

typedef char   gchar;

与标准C的char类型一致。


guchar

typedef unsigned char   guchar;

与标准C的unsigned char一致。


gint

typedef int    gint;

类似标准C的int类型。其值设置在G_MININT 到 G_MAXINT范围内。


guint

typedef unsigned int    guint;

类似标准C的unsigned int类型。其值设置在0到 G_MAXUINT的范围内。


gshort

typedef short  gshort;

类似标准C的short类型。其值设置在G_MINSHORT 到 G_MAXSHORT范围内。


gushort

typedef unsigned short  gushort;

类似标准C的unsigned short类型。其值设置在0到 G_MAXUSHORT的范内。


glong

typedef long   glong;

类似标准C的long类型。其值设置在G_MINLONG 到 G_MAXLONG范围内。


gulong

typedef unsigned long   gulong;

类似标准C的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

要 print 或scan 此类型的值, 使用 G_GINT16_MODIFIER 和(或) G_GINT16_FORMAT.


guint16

typedef unsigned short guint16;

在任何平台上都保证是一个无符号16位整数。 取值范围为0 到 65,535

要 print 或scan 此类型的值, 使用 G_GINT16_MODIFIER 和(或) G_GUINT16_FORMAT.


gint32

typedef signed int gint32;

在任何平台上都保证是一个有符号32位整数。 取值范围为 -2,147,483,648 到 2,147,483,647

要 print 或scan 此类型的值, 使用 G_GINT32_MODIFIER 和(或) G_GINT32_FORMAT.


guint32

typedef unsigned int guint32;

在任何平台上都保证是一个无符号32位整数。 取值范围为 0 到 4,294,967,295

要 print 或scan 此类型的值, 使用 G_GINT32_MODIFIER 和(或) G_GUINT32_FORMAT.


G_HAVE_GINT64

#define G_HAVE_GINT64 1          /* deprecated, always true */

Warning

G_HAVE_GINT64 is deprecated and should not be used in newly-written code. GLib 2.0版以后需要64-bit 整型支持,所以 G_HAVE_GINT64 总是 要定义的。

在任何平台上都保证是一个有符号64位整数。 取值范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807


gint64

G_GNUC_EXTENSION typedef signed long long gint64;

在任何平台上都保证是一个有符号64位整数。 取值范围为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

要 print 或scan 此类型的值, 使用 G_GINT64_MODIFIER 和(或) G_GINT64_FORMAT.


guint64

G_GNUC_EXTENSION typedef unsigned long long guint64;

在任何平台上都保证是一个无符号32位整数。 取值范围为 0 到 18,446,744,073,709,551,615

要 print 或scan 此类型的值, 使用 G_GINT64_MODIFIER 和(或) G_GUINT64_FORMAT.


G_GINT64_CONSTANT()

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

This macro is used to insert 64-bit integer literals into the source code.【不能确定】

val :

a literal integer value, e.g. 0x1d636b02300a7aa7.

G_GUINT64_CONSTANT()

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

This macro is used to insert 64-bit unsigned integer literals into the source code. 【不能确定】

val :

a literal integer value, e.g. 0x1d636b02300a7aa7U.

Since 2.10


gfloat

typedef float   gfloat;

类似标准C的float类型。 取值为 -G_MAXFLOAT 到 G_MAXFLOAT范围内。


gdouble

typedef double  gdouble;

类似标准C的double类型。 取值为 -G_MAXDOUBLE 到G_MAXDOUBLE范围内。


gsize

typedef unsigned int gsize;

无符号整形,用来储存sizeof的结果,与C99的size_t类型类似。 这个类型能足够存储下一个指针的数据。通常在32为平台上是32位的,在64位平台上是64位的。

要 print 或scan 此类型的值, 使用 G_GSIZE_MODIFIER 和(或) G_GSIZE_FORMAT.


gssize

typedef signed int gssize;

有符号gsize,与大多数平台的ssize_t类型类似。

要 print 或scan 此类型的值, 使用 G_GSIZE_MODIFIER 和(或) G_GSSIZE_FORMAT.


goffset

typedef gint64 goffset;

有符号的整形,用来作为文件偏移。类似于C99的off64_t。 Values of this type can range from G_MINOFFSET to G_MAXOFFSET.

To print or scan values of this type, use G_GOFFSET_MODIFIER and/or G_GOFFSET_FORMAT.

Since: 2.14

G_GOFFSET_CONSTANT()

#define G_GOFFSET_CONSTANT(val) G_GINT64_CONSTANT(val)

This macro is used to insert goffset 64-bit integer literals into the source code. See also G_GINT64_CONSTANT. 【不能确定】

val :

a literal integer value, e.g. 0x1d636b02300a7aa7. Since: 2.20

gintptr

typedef signed int gintptr;

Corresponds to the C99 type intptr_t, a signed integer type that can hold any pointer.

To print or scan values of this type, use G_GINTPTR_MODIFIER and/or G_GINTPTR_FORMAT.

Since: 2.18

guintptr

typedef unsigned int guintptr;

Corresponds to the C99 type uintptr_t, an unsigned integer type that can hold any pointer.

To print or scan values of this type, use G_GINTPTR_MODIFIER and/or G_GUINTPTR_FORMAT.

Since: 2.18