首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中头文件的历史?解决办法

2012-02-02 
C语言中头文件的历史?C语言中引入了头文件,那么头文件有什么好处,又有什么劣势呢?谁能告诉我?最好能从历史

C语言中头文件的历史?
C语言中引入了头文件,那么头文件有什么好处,又有什么劣势呢?谁能告诉我?

最好能从历史的角度来讨论这一个问题.

[解决办法]
模块化设计 ······
[解决办法]
头文件可以被看作是一种契约(contract),是实现者和使用者之间的契约。
而编译器在其中起着 "判官 "的作用,如果使用者没有按照契约的约定来使用,编译器会报错,从而提醒使用者使用中出现了错误。

[解决办法]
值得注意的是早起的C编译器是不需要头文件的,对于某个函数,可以不用声明就可以直接使用。

[解决办法]
通过头文件来调用库功能。向用户提供头文件和二进制的库进行配合使用。
[解决办法]
或者说是为了隐藏一些细节而产生的一种“纽带” .....
[解决办法]
可以将一些公用的东西,提出来,然后随处放置
[解决办法]
为何有的语言不需要“头文件”进行“预编译”呢?
--------
由于 "头文件 "里放置的全是 "声明 ",而不是 "定义 "。所以不需要 "头文件 "的语言也就是不需要声明的语言,从某种意义上说,就是 "弱类型 "的语言。
[解决办法]
以后的封装,安全,维护会带来很大的好处...
个人看法,个人YY,保留意见~
[解决办法]
模块化吧
[解决办法]
> > 所以不需要 "头文件 "的语言也就是不需要声明的语言,
> > 从某种意义上说,就是 "弱类型 "的语言。

恰恰相反,新的语言,包括 Java, C# 和动态语言几乎都没有预处理过程,而它们的类型强度都比 C / C++ 要高。为什么?

因为 C/C++ 的语言设计在很多方面对当时的编译器实现水平进行了妥协。引入头文件和声明语法是因为全局分析的实现复杂度 —— 与其让编译器进行全局分析,记录所有公开的符号,不如由程序员承担这个麻烦,提供全局声明。而 People make mistakes,所以头文件实际是一个 drawback 而不是什么模块化设计的 silver bullet.
[解决办法]
头文件,其实挺恶心的
[解决办法]
恰恰相反,新的语言,包括 Java, C# 和动态语言几乎都没有预处理过程,而它们的类型强度都比 C / C++ 要高。为什么?
--------
可能是存在虚拟机(Java),.NET运行库(C#)的原因吧:)
呵呵,不是很了解这些语言,随便说说。
[解决办法]
接口和实现的分离

热点排行