




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
glib,glib不是gllibc,尽管两者都是基于(L)GPL的开源软件。但这一字之差却误之千里,glibc是GNU实现的一套标准C的库函数,而glib是gtk+的一套函数库。在linux平台上,像其它任何软件一样,glib依赖于glibc。 gobject是glib的精粹,glib是用C实现的,但在很大程序是基于面向对象思想设计的,gobject是所有类的基类。signal在其中也是一大特色,signal与操作系统中的signal并不一样,它是类似消息一样的东西,让消息在各个对象间传递,但尽量降低对象间的耦合。仔细读一下它的代码,唯一想说的话就是“绝!”。,glib,glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非常精致。不用白不用,别客气了。 GLib将C语言中的数据类型统一封装成自己的数据类型,均以小写字母g开头,如:gpointer是指针类型(void *)、guint是无符号整型(unsigned int)等,其中有一些是修饰性的,如:gint、gchar等,它们和C语言中的int、char是完全相同的。,GLib提供了一种内存块(GMemChunk)数据类型,它为分配等大的内存区提供了一种非常好用的操作方式,下面程序演示了内存块数据类型的简单用法:,从上面的示例代码中可以看出,在GLib中几乎所有的对象都是C语言的结构类型,一般命名以大写字母G开头的单词,如GList表示双向链表,所有与之相关的操作函数都以小写的字母g加下划线加小写的单词加下划线开头,如以g_list_*开头的函数都是与这相关的操作函数,而且这些函数中的第一个参数多数是此对象的指针。 GLIB中的数据类型在GLIB本身,尤其是GTK+中频繁用到,了解掌握这些数据类据类型的用法是非常必要的,这对进一步灵活开发GTK+程序来说是关键一环,而且是对大学中的数据结构一科的很好回顾。,定义一些普通使用类型,可分为4组: 1.不属于标准C的新类型:gboolean, gsize, gssize. 2.可以在任何平台使用的整数:gint8, guint8, gint16, guint16, gint32, guint32, gint64, guint64. 3.与标准C相似但更好用的类型:gpointer, gconstpointer, guchar, guint, gushort, gulong. 4.与标准C基本一致的类型:gchar, gint, gshort, glong, gfloat, gdouble.,gboolean typedef gint gboolean; 标准的boolean类型。它只储存两个值:TRUE和FALSE gpointer typedef void* gpointer; 无类型的指针。Gpointer比 void*更好看和更好用。 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 guint16 typedef unsigned short guint16; 在任何平台上都保证是一个无符号16位整数。 其取值返回为 0 到 65,535 gint32 typedef signed int gint32; 在任何平台上都保证是一个有符号32位整数。 其取值返回为 -2,147,483,648 到 2,147,483,647 guint32 typedef unsigned int guint32; 在任何平台上都保证是一个无符号32位整数。 其取值返回为 0 到 4,294,967,295,gint64 G_GNUC_EXTENSION typedef signed long long gint64; 在任何平台上都保证是一个有符号64位整数。 其取值返回为 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 guint64 () GLIB_VAR guint64 (); 在任何平台上都保证是一个无符号32位整数。 其取值返回为 0 到 18,446,744,073,709,551,615 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. 0x1d636b02300a7aa7U. 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.,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位的。 gssize typedef signed int gssize; 一个有符号gsize,与大多数平台的ssize_t类型类似。 goffset typedef gint64 goffset; 一个有符号的整形,用来作为文件偏移。类似于C99的off64_t,详细,gpointer typedef void* gpointer; 无类型的指针。Gpointer比 void*更好看和更好用。 gconstpointer typedef const void *gconstpointer; 一个常数的无类型指针。指针的值不能被更改。 典型的使用子函数原型上,指出指针所指向的数据是不能被函数更改的。,gsize typedef unsigned int gsize; 一个无符号整形,用来储存sizeof的结果,与C99的size_t类型类似。 这个类型能足够存储下一个指针的数据。它常常在32为平台上是32位的,在64位平台上是64位的 gssize typedef signed int gssize; 一个有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班幼儿在数学阅读健康情感社交五大领域的发展策略
- 2024年中考押题预测卷02(天津卷)-历史(考试版)A3
- 【高中语文】学校高三三模语文试题
- 2024-2025学年下学期高一生物沪科版期末必刷常考题之基因突变是生物变异的根本来源
- 点、直线和平面的投影
- 2024-2025学年浙江省杭州市部分重点中学高二下学期开学检测语文试题(解析版)
- 2025年秋三年级上册语文同步教案 口语交际:身边的“小事”
- 学校德育工作心得体会
- 高一升高二(英语)
- 治疗室换药室消毒管理制度讲课件
- 河南省郑州市第八中学2025年七下英语期末经典试题含答案
- 2025年高考真题-化学(安徽卷) 含答案
- 2024年佛山市南海公证处招聘笔试真题
- 拱墅区长庆街道招聘工作人员考试真题2024
- 2025防洪防汛专项培训
- 拆除与清运合同协议书
- 2025年中级会计实务考试解析方法试题及答案回顾
- 食品许可证初级考试试题及答案
- 2025《银行专业实务(银行管理)》初级银行人员高分必会试题库1000题-单选400题
- 咖啡师考试试题及答案
- 2025年人教版新教材数学一年级下册期末复习计划
评论
0/150
提交评论