要想创建一个新的控件,最重要的是要对 GTK 对象的工作原理有所了解。这一节只是一个简述,详见参考手册。 GTK 控件具有面向对象的特性。然而,它是用标准的 C 实现的。这极大的改善了在当前 C++ 编译器上使用的可移植性和稳定性;但是,这也意味着写控件的人必须注意一些实现的细节。一个控件类的所有实例(比如所有的按钮控件)的共有信息存储在类结构 里,类的信...
指令顺序 开发者总是自以为源代码中指定的指令顺序与最终的指令顺序一致。这种写法是错误的,并导致难以查找bug。实际上,优化器会像优化 C 语句那样优化汇编语句。如果有可能,指令的顺序可能会重排。 “优化 C 代码”一节对此进行了详细讨论并提供了解决方案。 定义变量作为指定的寄存器 即使将一个变量强制赋值给了一个指定的寄存器,代码运行的结果也可能不...
通常整个程序是由多个源文件组成的,相应地也就形成了多个编译单元,使用GCC能够很好地管理这些编译单元。假设有一个由test1.c和 test2.c两个源文件组成的程序,为了对它们进行编译,并最终生成可执行程序 test ,可以使用下面这条命令: gcc test1 . c test2 . c - o test 如果同时处理的文件不止一个,GCC仍然...