Afo*_*age 0 c++ visual-studio-2012
每当我声明一个新变量(如下面的结构)时,我必须用 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,如果我不使用 初始化我的结构{},它将包含许多“垃圾”数据。
这不仅仅是 Visual Studio。C++ 语言指定变量(有一些例外)不会被初始化,因此它们在初始化或分配之前将包含垃圾。
应该可以用 C++ 编写非常高性能的代码,并且强制编译器必须添加并不总是需要的额外代码,可能会减慢其中一些程序的速度。
| 归档时间: |
|
| 查看次数: |
293 次 |
| 最近记录: |