欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;	//声明一个外部变量