c++ - header 包含性能

标签 c++ c compilation header shared-libraries

我经常避免只为了使用一个函数而包含大型头文件,认为这样做会造成性能损失。因此,我只需在代码中实现该功能,它就会按预期工作。

最后,我意识到这几乎破坏了库的整个概念,尽管很耗时。

想想看,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/

相关文章:

c - 使用 fork 两次 - 奇怪的行为

c++ - 模板:使用前向声明来减少编译时间?

python - 什么时候值得在 if-else 语句上使用循环?

c++ - qi::rule 以继承属性作为继承属性

c# - 跨平台使用的DLL项目应该是什么类型

c - C 中的数字时钟 - 如何更新秒数?

无法链接 OpenSSL 代码

c - 我的错误信息是什么意思?

c++ - 两个数组之间的共同功能?

重载运算符时出现 C++ 函数模板偏特化错误