C++:全局变量
程序员文章站
2024-01-21 21:31:10
...
定义和使用
-
在源文件A.cpp或头文件A.h中定义一个全局变量。(只能定义一次)
A.h或A.cpp
char g_char='g'; //定义一个全局变量,允许直接赋值 void Function1() { g_char='h'; //使用全局变量 }
-
在要使用这个全局变量的头文件B.h或源文件B.cpp中声明外部变量。
B.h或B.cpp
extern char g_char; //声明一个外部变量,不可以在这里赋值 void Function2() { //... g_char='a'; //使用全局变量 }
-
思考
预编译:把所有文件中的#inlcude <…> 命令都替换成实际的头文件代码。
编译链接:把所有已替换的cpp文件都连接成一个整体。
所以上述代码最终只定义了一次全局变量,不会重复定义,而使用extern关键字声明的外部变量允许声明多次,最终代码如下://A.cpp或A.h char g_char='g'; //定义一个全局变量,允许直接赋值 void Function1() { g_char='h'; //使用全局变量 } //B.cpp或B.h extern char g_char; //声明一个外部变量,不可以在这里赋值 void Function2() { //... g_char='a'; //使用全局变量 } //C.cpp或C.h:可能别的文件也需要使用外部变量 extern char g_char; //声明一个外部变量 //D.cpp或D.h: extern char g_char; //声明一个外部变量