Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if или #ifdef директива, с которой они связаны
Весь #else, #elif и #endif директивы препроцессору должен находиться в том же файле как #if или #ifdef директива, с которой они связаны.
Вы используете директивы препроцессору, такие как #if...#elif...#else...#endif
, условно включать или исключить блоки кода. Если различные ветви такой директивы находятся в файлах другого источника, код может сбить с толку. Если все ветви не включены в проект, код может вести себя неожиданными способами. Чтобы избежать беспорядка и неожиданного поведения, сохраните ветви условной директивы препроцессору в том же исходном файле.
Polyspace® повышает нарушение этого правила, если любое из этих условий верно:
Соответствующий #if
директива не может быть найдена в исходном файле для каждого #else
, #elif
, или #endif
директива.
Соответствующий #endif
директива не может быть найдена в исходном файле для каждого #if
директива.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: предварительная обработка директив |
Категория: необходимый |