使用我正在使用的C代码更有效率,将我的代码移动到现有的C程序中还是有一个h文件#included以便它调用单独的.c文件?
当它被编译成.exe时,如果将它合并到原始代码中而不是具有h文件和单独的.c文件,它是如何工作的?
我不确定该程序有多少行代码,我将其他代码合并到其中,但我的代码只有大约一千行代码。
谢谢, DemiSheep
答案 0 :(得分:9)
将代码保存在单个.c
文件或链接到同一个可执行文件的多个.c
文件之间的效率没有区别,因为一旦创建了可执行文件,它可能会包含相同的二进制文件代码选择哪种方法。当然,这可以通过二进制反汇编程序轻松验证。
单个.c
文件可以更改的是编译的速度,对于单个文件而言,这可能比一堆文件更快必须链接在一起的文件。 IIRC,SQLite首选的源代码分发方法之一是单个巨大的“合并C文件”,是编译速度。
那就是说,你真的不应该关心这类问题。 将程序分解为单独的模块,每个模块都有一个干净的界面和一个单独的实现文件。
答案 1 :(得分:0)
我知道这已经有一个很好的答案,说没有区别,但想添加这个
#include指令告诉你 预处理器来处理内容 就像那些内容一样,指定文件 曾出现在源程序中 指令出现的点。
我会自己写的,但是msdn docs说得很好。