包含不必要的头文件如何影响我的可执行文件

Posted

技术标签:

【中文标题】包含不必要的头文件如何影响我的可执行文件【英文标题】:How does including unneccesary header file affect my executable 【发布时间】:2013-09-29 11:22:54 【问题描述】:

包含不必要的头文件是否会增加我的可执行文件或影响编译时间。

例如。对于基本的输入输出程序,我肯定需要 stdio.h,但如果我还包括其他头文件,如 time.h、stdlib.h、math.h 它将如何影响可执行文件。

【问题讨论】:

Does #include affect program size? 的可能重复项 【参考方案1】:

它不会影响可执行文件的大小,但会影响编译时间。

更多包含更多编译时间。

【讨论】:

一些严重损坏的头文件可能会将全局变量添加到您的二进制文件中。 @Alex 同意,但我认为 OP 正在考虑标准标头【参考方案2】:

头文件只是声明 - 因此编译时间更长。

但它们不会增加任何额外的执行时间。

【讨论】:

【参考方案3】:

是的,它会影响程序的编译时间,您使用的包含越多,需要的预处理就越多,因此会影响编译时间

【讨论】:

【参考方案4】:

标题比问题更笼统。

不必要的标题也可能意味着“邪恶”的标题,主要是在其他必要的标题之前#included。

在必要之前包含的“随机”定义和/或“邪恶”#defines 可能会弄乱之后的 #included 并且这肯定会“影响”您的可执行文件。

【讨论】:

【参考方案5】:

大部分会影响编译时间,但对执行时间没有影响,所以最好添加程序中需要的头文件

【讨论】:

以上是关于包含不必要的头文件如何影响我的可执行文件的主要内容,如果未能解决你的问题,请参考以下文章

在带有符号链接的可执行文件中使用相对路径

Linux - 为啥我的可执行文件将 libpthread 作为共享库?

WiX 安装程序生成一个可执行文件

如何通过/proc文件系统访问Android应用的可执行文件

MSI 安装程序的可执行文件

mingw 包含哪些