glib提供许多有用的函数及定义. 我把它们列在这里并做简短的解释. 很多都是与libc重复, 对这些我不再详述. 这些大致上是用来参考, 您知道有什麽东西可以用就好.
17.1 定义
为保持资料型态的一致, 这里有一些定义:
G_MINFLOAT
G_MAXFLOAT
G_MINDOUBLE
G_MAXDOUBLE
G_MINSHORT
G_MAXSHORT
G_MININT
G_MAXINT
G_MINLONG
G_MAXLONG
|
此外, 以下的typedefs. 没有列出来的是会变的, 要看是在那一种平台上. 如果您想要具有可移植性, 记得避免去使用sizeof(pointer). 例如, 一个指标在Alpha上是8 bytes, 但在Inter上为4 bytes.
chargchar;
shortgshort;
longglong;
intgint;
chargboolean;
unsigned charguchar;
unsigned shortgushort;
unsigned longgulong;
unsigned intguint;
floatgfloat;
doublegdouble;
long double gldouble;
void* gpointer;
gint8
guint8
gint16
guint16
gint32
guint32
|
17.2 双向链结串列
以下函数用来产生, 管理及销毁双向链结串列.
GList* g_list_alloc(void);
voidg_list_free(GList *list);
voidg_list_free_1(GList *list);
GList* g_list_append(GList *list,gpointerdata);
GList* g_list_prepend (GList *list,gpointerdata);
GList* g_list_insert(GList *list,gpointerdata,gintposition);
GList* g_list_remove(GList *list,gpointerdata);
GList* g_list_remove_link (GList *list,GList *link);
GList* g_list_reverse (GList *list);
GList* g_list_nth (GList *list,gintn);
GList* g_list_find(GList *list,gpointerdata);
GList* g_list_last(GList *list);
GList* g_list_first(GList *list);
gintg_list_length(GList *list);
voidg_list_foreach (GList *list,GFuncfunc,gpointeruser_data);
|
17.3 单向链结串列
以下函数是用来管理单向链结串列:
GSList* g_slist_alloc(void);
voidg_slist_free(GSList*list);
voidg_slist_free_1(GSList*list);
GSList* g_slist_append(GSList*list,gpointerdata);
GSList* g_slist_prepend (GSList*list,gpointerdata);
GSList* g_slist_insert(GSList*list,gpointerdata,gintposition);
GSList* g_slist_remove(GSList*list,gpointerdata);
GSList* g_slist_remove_link (GSList*list,GSList*link);
GSList* g_slist_reverse (GSList*list);
GSList* g_slist_nth (GSList*list,gintn);
GSList* g_slist_find(GSList*list,gpointerdata);
GSList* g_slist_last(GSList*list);
gintg_slist_length(GSList*list);
voidg_slist_foreach (GSList*list,GFunc func,gpointeruser_data);
|
17.4 记忆体管理
gpointer g_malloc(gulongsize);
|
这是替代malloc()用的. 你不需要去检查返回值, 因为它已经帮你做好了, 保证.
gpointer g_malloc0 (gulongsize);
|
一样, 不过会在返回之前将记忆体归零.
gpointer g_realloc (gpointermem,gulongsize);
|
重定记忆体大小.
void g_free(gpointermem);
void g_mem_profile (void);
|
将记忆体的使用状况写到一个档案, 不过您必须要在glib/gmem.c里面, 加#define MEM_PROFILE, 然後重新编译.
void g_mem_check(gpointermem);
|
检查记忆体位置是否有效. 您必须要在glib/gmem.c上加#define MEM_CHECK, 然後重新编译.
17.5 Timers
Timer函数..
GTimer* g_timer_new (void);
voidg_timer_destroy (GTimer*timer);
voidg_timer_start(GTimer*timer);
voidg_timer_stop(GTimer*timer);
voidg_timer_reset(GTimer*timer);
gdouble g_timer_elapsed (GTimer*timer,gulong*microseconds);
|
17.6 字串处理
GString* g_string_new(gchar*init);
void g_string_free(GString *string,gint free_segment);
GString* g_string_assign(GString *lval,gchar*rval);
GString* g_string_truncate(GString *string,gint len);
GString* g_string_append(GString *string,gchar*val);
GString* g_string_append_c(GString *string,gcharc);
GString* g_string_prepend(GString *string,gchar*val);
GString* g_string_prepend_c (GString *string,gcharc);
void g_string_sprintf(GString *string,gchar*fmt,...);
void g_string_sprintfa(GString *string,gchar*fmt,...);
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:GTK+/Gnome应用开发
下一篇:GTK v1.2 Tutorial(英文)
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】
更多相关文章
|
|