主题 : C++/C下头文件的用途和结构 复制链接 | 浏览器收藏 | 打印
arm9之家,加油!一起加油!
级别: 新手上路
UID: 74373
精华: 0
发帖: 24
金钱: 130 两
威望: 26 点
贡献值: 0 点
综合积分: 48 分
注册时间: 2012-07-23
最后登录: 2012-09-27
楼主  发表于: 2012-09-04 10:20

 C++/C下头文件的用途和结构

C++/C源程序通常分为两类文件。一类文件用于保存程序的声明,称为头文件:另一类文件用于保存程序的实现,称为源文件(或者定义文件)。

C++/C程序的头文件以‘.h’为后缀,C程序的源文件以‘.C’为后缀,C++程序的源文件通常以.CPP为后缀。

早期的编程语言如BASIC、Fortran没有头文件的概念,C++/C语言的初学者虽然会使用头文件,但常常不明其理。这里对头文件的作用略作解释。

1. 通过头文件来调用库功能,在很多场合,源代码不便向用户公布,只要向用户提供头文件和二进制的库即可,用户只需按照头文件中的接口声明来调用库函数,而不必关心接口是怎么实现的,连接器会从库中提取相应的代码,并和用户的程序连接生成可执行文件或者动态连接库文件;

2. 头文件能加强类型安全检查,如果某个接口被实现或被使用时的方式与头文件中的声明不一致,编译器就和指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。

3. 头文件可以提高程序的可读性。

头文件中的元素比较多,其顺序一般应安排如下:

v 头文件注释(包括文件说明、功能描述、版权声明等)(必须有);

v 内部包含卫哨开始(#ifndefxxx #defineXXX)(必须有);

v #include其他头文件(如果需要);

v 常量和宏定义(如果需要);

v 类型前置声明和定义(如果需要);

v 全局函数原型和内联函数的定义(如果需要);

v 内部包含卫哨开始(#ifndefxxx #defineXXX)(必须有);

v 文件版本及修订说明。

上述排列顺序并非绝对,也不存在对错之分,可根据具体情况灵活安排。

如果程序中需要内联函数,那么内联函数的定义应当放在头文件中,因为内联函数调用语句最终被扩展开来而不是采用真正的函数调用机制。
信息来源:http://www.lirenedu.org/index.php?ack=xinwen&id=1202
嵌入式培训 http://www.lirenedu.org/
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-09-04 12:03
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."