C语言头文件的使用

static的作用是使变量的作用局限在一个c文件里面,如果在.h头文件里面定义这么一个变量,而且在多处#include了这个头文件,会出现什么结果?

分析#include是预处理指令,它是把头文件里面的内容复制到这个地方,预编译完成时它也就完成了它的使命,它从来不管这个头文件被别的文件include了多少次。static也还是使用自己的功能,因此,每一个包含这个头文件的c文件里面都有一个独立的名称相同的静态变量。这样估计就和编程者所要实现的不一样了。


头文件中定义的内容包括:

1.该头文件针对的c文件中需要用到的宏

2.该头文件针对的c文件里面定义的函数的原型声明

3.该头文件针对的c文件里面定义的全局变量的声明(使用extern)


extern关键字的普通使用小结:

百度百科解释:extern可置于变量和函数之前,以表示变量或函数定义在其他文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。

extern只是起到声明某一个变量或函数为全局变量,他可以在多个文件中同时声明同一个变量,但是只能够在一个文件中进行定义。

例如:extern int A;

注:变量一般都不在头文件里面定义,即使是全局变量也只是在头文件里面声明,如果在头文件中定义了一个全局变量,而这个头文件又被多个c文件包含,这样在编译的时候就会报错:重复定义变量。

通常情况下变量的定义放在某个c文件里面,如果要明确它是属于全局变量就在其头文件里面使用extern声明即可。当然也可以写一个独立的c文件来定义变量。


c语言编程时文件的结构小结:

把一个模块相关的功能函数写到同一个 "xxx.c" 文件里边,然后该 c 文件包含一个针对该模块的宏定义的头文件"xxx_config.h"(当然宏定义比较少时,这些宏定义直接写到该 c 文件里边),同时,该模块对外提供的接口函数定义在另外一个头文件 "xxx.h" 里面(当然要加“extern”来进行声明)












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值