小编Afo*_*age的帖子

为什么 VS Compiler 不自动初始化 C++ 上的局部变量?

每当我声明一个新变量(如下面的结构)时,我必须用 0 来初始化它。所以,我的问题是,有任何可能的情况我不希望我的变量被初始化吗?

MY_STRUCT msVar1; //May have some trash data from old stack values.
MY_STRUCT msVar2 = {}; //Will have only 0's, which is a "clean" variable.
Run Code Online (Sandbox Code Playgroud)

我试图思考在许多可能的情况下,我需要我的变量不被初始化为 0,但我无法......

我的意思是,如果我在初始化时不设置任何值,它会自动用 0 填充不是更好吗?

MY_STRUCT msVar1; //If I don't set any initialization value, auto fill it with 0's
MY_STRUCT msVar2 = {10, 20}; //Now I've specified a initialization value, so doesn't need to auto fill.
Run Code Online (Sandbox Code Playgroud)

实际上我正在使用 Visual Studio 2012,如果我不使用 初始化我的结构{},它将包含许多“垃圾”数据。

c++ visual-studio-2012

0
推荐指数
1
解决办法
293
查看次数

标签 统计

c++ ×1

visual-studio-2012 ×1