1.GObject
GNOME一切组件基石中的基石,设计很厉害用着很糟心的代表之作。众所周知C语言是个不“面向对象”的语言,为了改进C语言,让他又具有原本的运行效率又支持对象系统,C++、Objective C等就被设计出来。但是有一帮人觉得C++这些语言既不是完全兼容C,又增加了太多运算符,写着不爽。于是他们放出话来“面向对象是一种设计思想,和语言无关”,硬生生用C语言的“宏”模拟出一套对象系统来,直接用C语言的编译器就可以通过编译。因为这个系统设计得很经典,但是写起来完全不像C语言,还有超级多的括号()(())下划线_ _ _,看上去和C++那些根本好不到哪去。看热闹的多,真正拿来开发的少,出了GNU/Linux的圈子就很少有人用了。
如果想学GTK的话,GObject是绕不开的。尽管GObject是基于C语言的,但是几乎不能用C语言的思维理解,近乎一门新的语言了。就算用其他语言做GTK开发,文档基本上都是用C语言的文档直接机翻过来,很多代码示例还都是C语言的。因此虽然不用把GObject的一切都学透,还是有必要了解一下他的写法和基本原理。
文档:
https://docs.gtk.org/gobject/


中文 
因为太零碎了不好找所以来写个合集
先占个帖慢慢更新,欢迎补充