Макросы должны только быть #define 'd или #undef 'd в глобальном пространстве имен
Макросы должны только быть #define 'd или #undef 'd в глобальном пространстве имен.
Если вы зададите или не зададите макросы в локальном пространстве имен, вы можете ожидать, что макрос будет допустим только в локальном пространстве имен. Но макросы не следуют за механизмом определения объема. Вместо этого компилятор заменяет все случаи макроса его заданным значением, начинающимся в #define
оператор до конца файла или до макроса переопределен. Это поведение макросов может противоречить ожиданию разработчика и может вызвать логические ошибки тот результат в ошибках.
Polyspace® отмечает #define
или #undef
оператор, который помещается в блоке вместо в глобальном пространстве имен.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: предварительная обработка директив |
Категория: необходимый |