C++中全局变量的使用和注意事项

本文详细介绍了C++中全局变量的定义、声明及其使用场景,包括不同文件间的数据传递及注意事项。

在C++ 中,在函数体内或者是代码段内定义或者声明的变量其作用域是相应的函数或者是代码段,是局部变量,执行结束内存自动释放。相对于局部变量,全局变量的定义和声明在函数体外,作用域从定义处到相应的文件结束。关于全局变量的使用分以下:

     1.在文件中定义了全局变量,需要在前面使用:这时在定义之前用extern关键字对其进行声明。eg:

//cpp文件
extern int a;
void SetA()
{
      a = 100;
}
int a;
int main()
{
       //.....  
}
在a的定义之前要使用a,必须在使用之前用extern关键字声明。

      2.在一个cpp文件中定义了全局变量,需要在其他文件中使用:这时需要在其他文件中需要使用的地方之前用extern声明下eg:

//cpp1文件
extern int a;  // 声明
void setA(){
  a = 100;
}
//cpp2文件,a的定义文件
int a;  //全局变量a的定义
int main()
{
//....
}
     3.在一个cpp文件中定义了全局变量,但是仅仅需要在本文件中使用该变量:这是需要在定义的时候加上static关键字。

//cpp1文件
extern int a;  // 声明无效,a仅在cpp2文件中有效
void setA(){
  a = 100;
}
//cpp2文件,a的定义文件
static int a;  //全局变量a的定义
int main()
{
//....
}
上面的代码中,编译将会出现错误。因为cpp2中定义的全局变量用了static关键字,其作用域仅在该cpp文件内,不能在其他cpp和文件中使用。

注意:

1:当需要多个文件之间传递数据或者是消息的时候,可以用全局变量。但是需要谨慎,不要多处都用到一个全局变量,这样很容易造成错误,且难找出错误。

2:全局变量在定义或者声明的时候最好给变量进行初始化。




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值