如何使用 GLib 工具集管理 C 数据 glib不是一个学院派的东西,也不是凭空想出来的,完全是在开发 gtk+的过程中,慢慢总结和完善的结果
如果你是一个工作 3 年以上的 C 语言程序员,现在让你讲讲写程序的苦恼,你可能有很多话要说,但如果你有时间研究一下 glib,你会发现,很多苦恼已不再成其为苦恼,glib里很多东西正是你期望已经 久的
gobject是 glib的精粹,glib是用 C 实现的,但在很大程序是基于面向对象思想设计的,gobject是所有类的基类
signal在其中也是 一大特色,signal与操作系统中的 signal并不一样,它是类似消息一样的东西,让消息在各个对象间传递,但尽量降低对象间的耦合
仔细读一下它的 代码,唯一想说的话就是“绝
动态数组、链表、哈希表等通用容器,在不同的公司,在不同的时期,在不同的情况下,我们每个人对每一种容器,可能都实现过 N 次以上
甚至在同一个项目里, 出现几份链表的实现,也并非罕见
一直在抱怨,标准 C 中为什么没有类似于 STL 的标准容器,让全世界的程序员在数以万次的重复实现它们
不过,还算走运, 有了 glib,恶梦在此终结了
glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非 常精致
不用白不用,别客气了
组织数据 GLib 的范畴 首先研究 GLib 的范畴
GLib 是一个提供了很多实用定义和函数的底层程序库,包括基本类型及其限定的定义、标准宏、类型转化、字节次序、内存分配、警告与断言、 消息日志、计时器、字符工具、钩子函数、词法扫描器、模块的动态加载,以及自动的字符串补齐
GLib 还定义了很多数据结构(以及它们相关的操作),包括: 内存块(Memory chu nks) 双向链表(Doubly-linked list