首页 >

C语言或者C++语言头文件的意义是什么,现代编译器能否把这个给优化掉? – 网络|

百度搜索算法怎么知道,怎么把图片写上字,建网站什么样的域名最好C语言或者C++语言头文件的意义是什么,现代编译器能否把这个给优化掉? - 网络|C语言或者C++语言头文件的意义是什么,现代编译器能否把这个给优化掉

以上得知,C/C++语言的头文件起到了两个作用。第一,封装。封装了头文件的代码,使其得以被其他程序方便调用。第二,明确代码调用关系。

假如编译器试图通过某些手段去除头文件,那么必须要从代码中推断出引用代码的出处。请看一个简单的C++语言程序,helloworld.cpp

intmain(){

cout<<“hello,world\n”;

printf(“hello,world\n”);

}

编译器在helloworld.cpp中,找不到cout和printf的定义。怎么办?啊,简单,让编译器去标准库里找不就是了,cout在iostram里定义,printf在cstdio中。你知道,C/C++标准库很庞大,每次编译时要去蛮力搜索查找,时间上很昂贵,除非事先做了加速处理,然而引入了更多的工程问题。

好,那么大家多加两行代码

intmain(){

cout<<“hello,world\n”;

printf(“hello,world\n”);

Persondmr(“Dennis”,”Ritchie”);

cout<<dmr.last_name()<<endl;

}

问题来了。代码中没有Person类的定义。怎么办?去哪里找?大家必须告诉编译器,不然它只能在系统里去蛮力查找,时间上很昂贵,而且可能找错,毕竟也许有多个文件定义Person类呢!所以大家必须在源代码里标注出。绕了一圈,不是回到起点了,那不就是头文件吗?

为了省掉头文件或者在头文件处理上加上很多控制,从编译效率和代码可读性上,投入和收益比,没有明显提升,甚至下降。于是,C/C++头文件成了现实的工程选择。

有帮助,请点赞。


更多精彩文章和回答,请关注

微信公众号:IT之州

今日:IT之州

新浪微博:IT之州


C语言或者C++语言头文件的意义是什么,现代编译器能否把这个给优化掉? - 网络|
  • 介绍C语言中的设计模式方法与应用 - 网络|
  • 介绍C语言中的设计模式方法与应用 - 网络| | 介绍C语言中的设计模式方法与应用 - 网络| ...

    C语言或者C++语言头文件的意义是什么,现代编译器能否把这个给优化掉? - 网络|
  • C语言单向链表逆序实现(详解逆序算法及代码实现) - 网络|
  • C语言单向链表逆序实现(详解逆序算法及代码实现) - 网络| | C语言单向链表逆序实现(详解逆序算法及代码实现) - 网络| ...

    C语言或者C++语言头文件的意义是什么,现代编译器能否把这个给优化掉? - 网络|
  • 用if和for循环打造高效的C语言编程方法 - 网络|
  • 用if和for循环打造高效的C语言编程方法 - 网络| | 用if和for循环打造高效的C语言编程方法 - 网络| ...