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