标准的GLib数据类型:
gboolean 真或假,与GLib定义的TRUE和FALSE常量一起使用
gpointer 通用指针,即void *
gchar和guchar 字符和无符号字符
gint、guint、gshort 有符号和无符号数据类型
glong、gulong 长度根据硬件和操作系统体系结构的不同而变化
gint8、guint8、gint16、guint16、gint32、guint32 具有已知长度的有符号和无符号的整数数据类型。
gint64、guint64 64位有符号和无符号整数
gfloat、gdouble 浮点数
gsize 无符号整数
gssize 有符号整数
宏
1.分隔符宏和常量
G_DIR_SEPARATOR 字符,Windows下是'\',Linux下是'/'
G_DIR_SEPARATOR_S 字符串
G_SERACHPATH_SEPARATORPATH分隔符,Windows下是';',Linux下是':'
G_SERACHPATH_SEPARATOR_S 字符串
2.算数宏
MIN(x, y)
MAX(x, y)
ABS(x)
CLAMP(x, y, z) 锁定给定范围的一个值
错误检测
g_assert() 条件为假,程序终止
g_assert_not_reached()不应该到达的点,如果执行,则程序将会终止
g_return_if_fail 条件为假,函数返回,程序不终止
g_return_val_if_fail 增加一个返回值
g_error() 输出错误消息并终止程序
g_warning() 不终止程序,只输出错误消息
使用内存
g_malloc和g_free,函数失败将终止应用程序,其工作与malloc和free几乎相同。
数据结构:
单向链表
struct GSList
{
gpointer data;
GSList *next;
}
双向链表
struct GList
{
gpointer data;
GList *next;
GList *prev;
}
建立表是初始化一个表指针为NULL,而不是建立一个空表。
删除表 g_slist_free()、g_list_free()
插入表项 g_slist_append、g_slistprepend、g_list_append、g_list_prepend、g_list_insert
表中移动
单项链表 g_slist_next、g_slit_last
双向链表g_list_next、g_list_last、g_list_first、g_list_previous
排序 g_list_sort、g_list_find_custom
树、散列表、夸克
GTree * g_tree_new(GCompareFunc ComparisonFunction);
g_tree_insert()
g_tree_remove()
g_tree_lookup()
g_tree_traverse()
g_tree_destroy()
扩展数据类型:
GString
g_string_new
g_string_sized_now
g_string_assign
g_string_append
g_string_prepend
g_string_insert
g_string_up
g_string_down
g_string_erase
计时器GTimer
g_timer_new
g_timer_start
g_timer_stop
g_timer_elapsed
g_timer_reset
g_timer_destroy