Поделиться через


Предупреждение компилятора (уровень 1) C4533

инициализация переменной пропускается инструкцией

Замечания

Инструкция в программе изменила поток управления, поэтому инструкция, которая инициализировала переменную, не выполнялась.

Параметр /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
}