通常整个程序是由多个源文件组成的,相应地也就形成了多个编译单元,使用GCC能够很好地管理这些编译单元。假设有一个由test1.c和 test2.c两个源文件组成的程序,为了对它们进行编译,并最终生成可执行程序 test ,可以使用下面这条命令: gcc test1 . c test2 . c - o test 如果同时处理的文件不止一个,GCC仍然...
指令顺序 开发者总是自以为源代码中指定的指令顺序与最终的指令顺序一致。这种写法是错误的,并导致难以查找bug。实际上,优化器会像优化 C 语句那样优化汇编语句。如果有可能,指令的顺序可能会重排。 “优化 C 代码”一节对此进行了详细讨论并提供了解决方案。 定义变量作为指定的寄存器 即使将一个变量强制赋值给了一个指定的寄存器,代码运行的结果也可能不...