C语言头文件

整理于网上资料 http://blog.csdn.net/janders/article/details/611081 和

 http://www.cnblogs.com/polestar/archive/2012/02/24/2366724.html


头文件的理论概述:

.h中一般放的是同名.c文件中定义的变量、数组、函数的声明,需要让.c外部使用的声明。

1)h文件作用:  

     1.方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明;

  2. 使函数的作用域从函数声明的位置开始,而不是函数定义的位置(实践总结)

  3 .提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。

2)h文件里应该有什么:常量,结构,类型定义,函数,变量申明。

3)h文件不应该有什么:变量定义, 函数定义。


头文件编写的基本规则:     

    1. 防重入开关,也就是常见的 #ifndef… #define… #endif
    2. #include ,头文件里应该 include 所有该文件中所使用的其它接口头文件。这里有也有两层含义,一是说头文件应做到自包含,即使用头文件的用户不需要再为该头文件 include 其它头文件;二是从模块耦合内聚角度来说,头文件中本身不应该 include 太多其它头文件,一般就是通用数据类型定义, include 其它头文件意味着强耦合——引用了其它头文件中的类型定义,宏或是函数。
    3. 接口声明及注释,包括函数,结构体等,但不应该出现全局变量(全局变量的申明放在头文件中,定义不可放在头文件中,因为多个文件引用时会出现重定义错误),和 static 类型的接口(static类型接口只能在自己的文件中使用,没有必要在头文件中申明),这些都应该是放置在 C 文件中。函数的注释中应该包括功能说明,参数使用方法,可能的返回值,及其它注意事项。结构体的注释中应该包括每个成员变量所表示的含义。我们也提倡自注释,即通过合理的命名达到见名知意的效果。

C语言的存储类说明符有以下几个我来列表说明一下:

说明符                      用法

Auto               只在块内变量声明中被允许表示变量具有本地生存期.

Extern             出现在顶层或块的外部变量函数与变量声明中,表示声明的对象具有静态生存期连接程序知道其名字.

Static              可以放在函数与变量声明中在函数定义时其只用于指定函数,而不将函数导出到连接程序在函数声明中,表示其后面会有定义声明的                   函数存储类为static. 在数据声明中总是表示定义的声明不导出到连接程序.

 C99中规定所有顶层的默认存储类标志符都是extern

.H文件中声明的函数,如果在其对应的.c文件中有定义,那么我们在声明这个函数时,不使用extern修饰符(这个是为了一个文件内函数的的定义顺序和调用顺序可能不一致,不如说现在只有一个.C文件,main函数调用一个子函数,但是这个子函数定义是在mian函数的下面,那这是编译器会报错的)如果反之,则必须显示使用extern修饰符(使用别的.C里定义的函数)..这样,在C语言的.h文件中,我们会看到两种类型的函数声明. 带extern的,还不带extern的, 简单明了,一个是引用外部函数,一个是自己生命并定义的函数.

.h文件的顶层作用域,:顶层作用域就是从声明点延伸到源程序文本结束


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值