加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 包含库的运行时性能成本是多少?

发布时间:2020-12-16 10:41:27 所属栏目:百科 来源:网络整理
导读:参见英文答案 Will there be a performance hit on including unused header files in C/C++?????????????????????????????????????4个 包含整个库(可能有数百个函数)然后只使用单个函数之间是否有任何运行时性能差异: #includefooint main(int argc,char *
参见英文答案 > Will there be a performance hit on including unused header files in C/C++?????????????????????????????????????4个
包含整个库(可能有数百个函数)然后只使用单个函数之间是否有任何运行时性能差异:

#include<foo>

int main(int argc,char *argv[]) {
    bar();//from library foo
    return 0;
}

在将相关代码片段从库直接粘贴到代码之间,例如:

void bar() {
...
}

int main(int argc,char *argv[]) {
    bar();//defined just above
    return 0;
}

是什么阻止我在我的C文件开头无意识地包括我最喜欢的(也是最常用的)库?这个流行的线程C/C++: Detecting superfluous #includes?表明编译时间会增加.但编译后的二进制文件会有什么不同吗?第二个项目是否真的胜过第一个项目?

相关:what does #include <stdio.h> really do in a c program

编辑:这里的问题与相关的Will there be a performance hit on including unused header files in C/C++?问题不同,因为这里包含一个文件.我在这里问,如果包含单个文件与将实际使用的代码片段复制粘贴到源中有任何不同.我稍微调整了标题以反映这种差异.

解决方法

就最终计划而言,没有性能差异.链接器仅链接实际用于程序的函数.库中存在的未使用的函数将无法链接.

如果包含许多库,则编译程序可能需要更长的时间.

您不应该包括所有“最喜欢的库”的主要原因是程序设计.您的文件不应包含除正在使用的资源之外的任何内容,以减少文件之间的依赖关系.你的文件对程序其余部分的了解越少越好.它应尽可能自主.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读