Ruc*_*hir 1 c++ global-variables
请考虑以下代码:
#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int count123;
for (int c = 0; c < 10; c++)
{
count123 += c;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译后我收到警告: warning C4700: uninitialized local variable 'count123' used
我知道原因是宣布count123但没有初始化它.
但是,如果我将count123声明为全局变量,如下面的代码所示,则警告消失.
#include "stdafx.h"
using namespace std;
int count123;
int _tmain(int argc, _TCHAR* argv[])
{
for (int c = 0; c < 10; c++)
{
count123 += c;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
据我所知,将count123声明为全局变量会改变其范围但是如何删除警告?请指导.
全局变量初始化为零(顺便说一下,这同样适用于静态变量).这就是为什么你没有得到这个消息.
这里的标准报价:
8.5/10:在进行任何其他初始化之前,每个静态存储持续时间的对象在程序启动时都是零初始化的.在某些情况下,稍后会进行额外的初始化.