我目前正在学习 C 编程语言,并且很好奇使用预处理器宏时我得到的代码输出。所以我使用-E
开关运行gcc并查看输出并且有点惊讶。总产量大于预期。阅读完之后:http://tigcc.ticalc.org/doc/cpp.html我意识到这种行为是有意的,但是一个问题(我在使用谷歌时无法找到答案)仍然存在:进入下一次编译时,大多数代码都被优化了相?例如,生成的代码包含typedefs
__u_char
或memcpy
的定义,以及我的程序中未使用的类似内容。当我得到生成的可执行格式时,这些引用是否仍然存在,或从编译器/汇编器中删除?
答案 0 :(得分:4)
它们只是函数的“原型”,允许您在代码中引用它们。他们根本不占用任何空间。只有您使用的函数的代码才会实际从库本身复制到可执行文件中。