全局变量定义及作用
在程序中,全局变量是一种在整个程序过程中都可用的变量,它可以被所有函数访问。全局变量在程序开始执行时分配内存空间,直到程序结束才释放。定义全局变量不像局部变量那样需要在函数中声明,而是需要在所有函数之外定义。
全局变量的定义方法
方法一:在全局范围内定义
在所有的函数外部,可以使用以下语法定义全局变量:
#include<iostream>
using namespace std;
int g=20; //定义全局变量
int main()
{
cout<<"g的值为:"<< g << endl;
return 0;
}
输出结果如下:
g的值为:20
方法二:在头文件中定义
在头文件中定义全局变量的方法和在所有的函数外部定义是一样的,只需将全局变量定义在头文件的顶部即可。例如,在“.h”文件中定义全局变量:
#ifndef __HELLOWORLD_SCENE_H__
#define __HELLOWORLD_SCENE_H__
#include "cocos2d.h"
class HelloWorld : public cocos2d::Layer
{
public:
static cocos2d::Scene* createScene();
virtual bool init();
void menuCloseCallback(cocos2d::Ref* pSender);
CREATE_FUNC(HelloWorld);
};
// 在此处定义全局变量
int g_iGlobalVariable = 0;
#endif
方法三:使用extern关键字
extern关键字可以在一个文件中声明一个在另一个文件中定义的全局变量。在下面的示例中,全局变量g_iGlobalVariable通过在相同的文件中声明和定义在函数中引用:
#include <iostream>
using namespace std;
extern int g_iGlobalVariable; // 声明已在另一个文件中定义的全局变量
void myFunction()
{
// 引用全局变量
cout << "全局变量的值是:" << g_iGlobalVariable << endl;
}
int main()
{
// 赋值给全局变量
g_iGlobalVariable = 42;
// 输出全局变量
myFunction();
return 0;
}
输出结果如下:
全局变量的值是:42
全局变量使用的注意事项
全局变量的初始化
全局变量的初始化必须在程序的开始阶段进行,否则程序将不能正确地执行。在下面的示例中,全局变量x的值被初始化为15:
#include <iostream>
using namespace std;
int x = 15; // 全局变量x的初始值
int main()
{
// 输出全局变量x的值
cout << "全局变量x为:" << x << endl;
return 0;
}
输出结果如下:
全局变量x为:15
变量的作用域和生命周期
在程序执行过程中,全局变量的生命周期始于程序启动,终于程序结束。它的作用域是整个程序,包括所有的函数。换句话说,所有函数都可以访问全局变量。
全局变量的命名规则
全局变量的命名规则应该和局部变量一样。变量名应该:
以字母、下划线或美元符号开头
不能以数字开头
不能包含空格或标点符号
区分大小写
总结
全局变量是在全局范围内定义的变量,它可以被所有函数访问。全局变量的定义方法有三种:在全局范围内定义、在头文件中定义以及使用extern关键字。全局变量的使用要注意初始化、变量的作用域和生命周期以及命名规则等方面,这样才能确保程序的正确性。