Данное диагностическое правило основано на руководстве AUTOSAR (AUTomotive Open System ARchitecture) по разработке программного обеспечения.
Если переменная POD-типа не инициализируется явно и не имеет инициализатора по умолчанию, то её значение будет неопределённым. Использование такого значения приведет к неопределенному поведению.
Простой синтетический пример:
int Aa = Get(); int Ab; if (Ab) // Ab - uninitialized variable Ab = Foo(); else Ab = 0;
Как правило, ошибки использования неинициализированных переменных, возникают из-за опечаток. Например, может оказаться, что в этом месте следовало использовать другую переменную. Корректный вариант кода:
int Aa = Get(); int Ab; if (Aa) // OK Ab = Foo(); else Ab = 0;
Данная диагностика классифицируется как:
|