glib是gtk的基本库,提供了许多实用函数,包括常用的数据结构处理、文件处理、字符串处理等。使用时只需要包括<glib.h>。
sudo apt-get install devhelp来安装devhelp,之后就可以通过devhelp来查看函数了。
glib有它自己的类型定义:
整数类型:
gint8、guint8、gint16、guint16、gint32、guint32、gint64、guint64。
不是所有的平台都提供64位整型,如果一个平台有这些, glib会定义G_HAVE_GINT64。
类型gshort、glong、gint和short、long、int完全等价。
布尔类型:
gboolean:它可使代码更易读,因为普通C没有布尔类型。
Gboolean可以取两个值:TRUE和FALSE。实际上FALSE定义为0,而TRUE定义为非零值。
字符型:
gchar和char完全一样,只是为了保持一致的命名。
浮点类型:
gfloat、gdouble和float、double完全等价。
指针类型:
gpointer对应于标准C的void *,但是比void *更方便。
指针gconstpointer对应于标准C的const void *(注意,将const void *定义为const gpointer是行不通的)
typedef char gchar;
typedef short gshort;
typedef long glong;
typedef int gint;
typedef gint gboolean;
typedef unsigned char guchar;
typedef unsigned short gushort;
typedef unsigned long gulong;
typedef unsigned int guint;
typedef float gfloat;
typedef double gdouble;
typedef void* gpointer;
typedef gchar gint8;
typedef guchar guint8;
typedef gshort gint16;
typedef gushort guint16;
typedef gint gint32;
typedef guint guint32;
<glist.h>的GList为双向链表
typedef struct _GList GList;
struct _GList
{
gpointer data;
GList *next;
GList *prev;
};
<gslist.h>的GSList为单向链表
typedef struct _GSList GSList;
struct _GSList
{
gpointer data;
GSList *next;
};