您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 1浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

为什么要有头文件

顺其自然~ 发布时间:2020-10-14 21:55:01 ,浏览量:1

c、c 、obj c都有头文件,java、c#、python、ruby之类的没有不也活得好好的么?头文件存在的意义在哪儿?

原先的电脑内存小,编译器只能顺序阅读代码,模块分布在多个文件又不可能避免环状依赖,所以自然会有头文件了。

其实这些古老的语言还是Delphi做得好。它的文件分interface和implementation,就形同h和cpp,然而他们是在一起的。interface之间有自己的uses列表,implementation之间有自己的uses列表,完美的解决了这个问题。

到了后来内存已经很大了,编译一个程序花个两三T内存已经不是什么新鲜事了,所以就可以随便乱搞了,于是就有C#这一类不需要文件名参与的模块封装方式(看向java和python的namespace和文件夹)。C#的代码分不分多个文件其实完全只是为了编辑方便,反正编译器都是一次读进合并起来编译的。编译成二进制文件之后,类和函数的签名全在metadata里面,以后引用它直接把dll拖进去就好了。再也不需要什么头文件了。

在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。

头文件的主要作用在于多个代码文件全局变量(函数)的重用、防止定义的冲突,对各个被调用函数给出一个描述,其本身不需要包含程序的逻辑实现代码,它只起描述性作用,用户程序只需要按照头文件中的接口声明来调用相关函数或变量,链接器会从库中寻找相应的实际定义代码。

头文件是用户应用程序和函数库之间的桥梁和纽带。在整个软件中,头文件不是最重要的部分,但它是C语言家族中不可缺少的组成部分。编译时,编译器通过头文件找到对应的函数库,进而把已引用函数的实际内容导出来代替原有函数。进而在硬件层面实现功能。

头文件中包含函数原型的声明,通过声明,链接器可以在lib中找到相应的库函数,进而在dll中找到相应的函数入口。

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0460s