编译器警告(等级 1)C4533
“variable”的初始化被“instruction”跳过
注解
程序中的指令更改了控制流,因此未执行初始化变量的指令。
/sdl
(启用附加安全检查)编译器选项会将此警告升级为错误。
示例
下面的示例生成 C4533。 为解决此问题,请在跳转指令之前或跳转目标之后移动初始化。
// C4533.cpp
// compile with: /W1
#include <stdio.h>
struct A
{
int m_data;
};
int main()
{
if (1)
{
goto Label;
}
A a = { 100 };
Label: // C4533
printf("\n%d", a.m_data); // prints an uninitialized value
}