我经常避免只为了使用一个函数而包含大型头文件,认为这样做会造成性能损失。因此,我只需在代码中实现该功能,它就会按预期工作。
最后,我意识到这几乎破坏了库的整个概念,尽管很耗时。
想想看,C编译器倾向于将程序动态链接到libc共享库(可以使用命令ldd
可执行文件倾向于包含整个库函数,还是仅包含使用的函数?
我想知道 C/C++ 是否有任何差异..
最佳答案
"So, doesn't that mean that linking to the whole library is performance-consuming enough, that I need not care about individual file inclusions ?"
我不太明白你在哪里看到了性能问题。包括头文件是由c预处理器优化的,链接是不同阶段的,由链接器优化的。
尽管通常有充分的理由,但只是使用函数或类的前向声明,而不是包含整个 header 。但这与性能没有太大关系。
"Do executables tend to include the whole library functions, or just the used functions ?"
如果使用静态链接,链接器只会添加使用过的函数。
"I'd like to know if there are any C / C++ differences .."
没有。
关于c++ - header 包含性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26192089/