Visual Studio 2005:是否有编译器选项将所有基于堆栈的变量初始化为零?

Dav*_*vid 2 compiler-construction variables initialization visual-studio

这个问题之前不得不被问到,所以它让我再次问它,但我无法找到所有谷歌和搜索stackoverflow.

我将一堆linux代码移植到windows中,其中很大一部分假设所有内容都自动初始化为零或null.

int whatever;
char* something;
Run Code Online (Sandbox Code Playgroud)

...然后立即做一些可能会让'某事'无效的事情,并针对'某事'进行测试

if(something == NULL)
{
.......
}
Run Code Online (Sandbox Code Playgroud)

我真的不想在整个代码中回过头来说:

int whatever = 0;
char* something = NULL;
Run Code Online (Sandbox Code Playgroud)

即使这是处理它的正确方法.这只是非常耗时.

否则,我声明一个变量,如果我自己没有设置它,它会被初始化为疯狂的东西.

rlb*_*ond 6

MSVC中不存在此选项,老实说,编写应用程序的人犯了一个大错误.该代码不可移植,因为C/C++表示未初始化的变量具有未定义的值.我建议将"将警告视为错误"选项并重新编译; MSVC 在每次使用变量时给出警告而不进行初始化.