您的位置:首页 > 编程语言 > C语言/C++

C语言头文件的使用

2014-06-29 18:57 225 查看
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”来进行声明)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: