百韵网 >>  正文

C++ include的头文件里面的函数从来没用过会被编译进exe吗? 请问一下,c++中头文件被include一次就要被编译一次吗...

来源:www.baiyundou.net   日期:较早时间
头文件里你在代码中没有调用过的函数不会被编译到exe文件中。如果没有用过的函数也编译进去,那可执行程序得多大。
虽然不会编译进去,平常还是需要用哪些函数就包含哪个头文件,不需要的的不包含,编译时费时间。
C是多文件编译的,编译时会把每个Cpp文件单独编译,然后在链接过程中,代码中调用了哪个函数,编译器就会链接哪个函数,没有调用的不会链接。

一般不会剔除,但是你说的不完全对,头文件里只声明了函数原型,它们不代表函数的实体,二函数的实体在cpp文件里定义,那部分会在exe或者dll内

请问一下,c++中头文件被include一次就要被编译一次吗? 谢谢~

基本上是这样:
头文件在编译初期就会被加入到引用它的cpp文件中去,c++工程的编译单位是单个cpp文件,编译器先把这些文件编译成为.o文件,然后在链接在一起,所以相当于include一次编译一次。

注意:
一楼说得那个情况是说避免被重复include的问题,我说得是不重复的情况下,实际被include的次数!

不管你用不用这个函数,每个编译器都会自动连接一个库(静态连接的或者动态连接),这个库包含运行你的C/C++程序之前需要执行的操作,以及C/C++标准库实现。这个东西并不占用太大内存,并且如果使用动态链接,你的程序就可以和其他进程共享同一份代码,并且生成的exe文件更小。
这个库是必须连接到你的程序里面的,如果觉得“低效”,那你只能去用汇编语言来写,那个写出的代码占用的空间小,生成的exe也非常小。
对于现代的编译器和计算机,即使头文件包含太多声明和定义,编译器也能很快进行编译,除此之外某些编译器还可以预编译某些头文件提高编译速度。

相关要点总结:
(编辑:本站网友)
相关推荐
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图
@ 百韵网