股票

C语言中全局变量在多文件中两种声明方法

再一次强化下多文件下全局变量的使用。现在主要用到两种方法:

一是有很多头文件的情况下,一般在函数文件function.c中定义:

[task]Bool KeyPress=0; [/task]

然后在对应的头文件define.h中引用声明:

[task]extern Bool KeyPress; [/task]

主意前面加extern,表示在别处声明过了;同时不能再次赋初值,初始化只能一次。

别的文件需要用到这个全局变量的时候,直接引用这个头文件就好。

[task]#include”define.h”[/task]

这个方法比较清晰,特别是在一个文件中的很多全局变量,在很多文件中需要使用的时候,每个文件只需要引用一次头文件。

第二种方法是直接在function2.c函数文件中直接使用。

[task]extern Bool KeyPress; [/task]

同样,需要加extern, 同时不能再次初始化。

这个方法适用于很少使用头文件,并且引用的全局变量不多的时候使用。毕竟,每使用一个全局变量,都要再这个文件中引用一次,比如一共十个全局变量,在十个文件中引用,就要写10X10=100行引用,相比引用头文件的方法,只需要写10次就够了。好处是,这个不需要头文件,用到的时候 extern 过来就行了。

打赏
原文链接:,转发请注明来源!

发表评论