Glib

白念
2023-12-01


glib不是一个学院派的东西,也不是凭空想出来的,完全是在开发gtk+的过程中,慢慢总结和完善的结果。

如果你是一个工作3年以上的C语言程序员,现在让你讲讲写程序的苦恼,你可能有很多话要说,但如果你有时间研究一下glib,

你会发现,很多苦恼已不再成其为苦恼,glib里很多东西正是你期望已经 久的。      

gobject是glib的精粹,glib是用C实现的,但在很大程序是基于面向对象思想设计的,gobject是所有类的基类。

signal在其中也是 一大特色,signal与操作系统中的signal并不一样,它是类似消息一样的东西,让消息在各个对象间传递,但尽量降低对象间的耦合。

仔细读一下它的 代码,唯一想说的话就是“绝!”。    

 动态数组、链表、哈希表等通用容器,在不同的公司,在不同的时期,在不同的情况下,我们每个人对每一种容器,可能都实现过N次以上。

甚至在同一个项目里, 出现几份链表的实现,也并非罕见。

一直在抱怨,标准C中为什么没有类似于STL的标准容器,让全世界的程序员在数以万次的重复实现它们。

不过,还算走运, 有了glib,恶梦在此终结了。

glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非 常精致。不用白不用,别客气了。

 

glib还对C的内存申请释放做了管理。通过编译设置可以方便的对重复释放,未释放等错误进行分析。

 类似资料: