Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

GTK入门导引

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  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(英文)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章