包含一个头文件,但在源文件中没有使用其中声明的任何函数会产生什么影响?它会影响堆栈大小等吗?
char big_honkin_thing[9999999];
可能在二进制文件中不占用空间(因为它没有被初始化)。 - cnicutarld
不会检测到任何东西)。这是关于.bss
与.data
的区别。 - cnicutar堆栈大小由您的链接器确定。您可能实际上是指生成的代码是否更大。
在翻译单元中包含一个声明从未被引用的头文件不会影响生成对象的大小。当然,它会减慢编译速度。
这将会增加编译时间,但据我所知,不应该有其他的变化。
如果头文件中没有任何影响源文件的内容,直接访问源文件比使用头文件访问源文件所需的时间更短。