Disabled preprocessor definitions (-U)

Не определите макросы в предварительно обработанном коде

Описание

Не определите макросы в предварительно обработанном коде.

Задать опцию

Пользовательский интерфейс (только для настольных продуктов): В строении проекта опция находится на узле Macros.

Командная строка и файл опций: Используйте опцию -U. См. «Информация о командной строке».

Зачем использовать эту опцию

Используйте эту опцию, чтобы эмулировать поведение компилятора. Например, если ваш компилятор рассматривает макрос _WIN32 как не определено, когда вы создаете свой код, он выполняет код в #ifndef _WIN32 оператор. Если Polyspace® считает, что макрос задан, необходимо явно не определять макрос.

Некоторые настройки для Compiler (-compiler) включить определенные макросы по умолчанию. Эта опция позволяет вам не определять макросы.

Как правило, вы распознаете из ошибок компиляции, что определенный макрос должен быть неопределенным. Например, следующий код не компилируется, если макрос _WIN32 задан.

#ifndef _WIN32
  int env_var;
#endif

void set() {
  env_var=1;
}
Сообщение об ошибке гласит, что env_var не определено. Однако определение env_var находится в #ifndef _WIN32 оператор. Основной причиной ошибки является то, что макрос _WIN32 задан. Вы должны не определить _WIN32.

Настройки

По умолчанию нет

Используя кнопку, добавьте новую строку для каждого неопределенного макроса.

Совет

Спецификация компилятора определяет значения многих макросов, специфичных для компилятора. Если вы хотите знать, как Polyspace задает определенный макрос, используйте опцию -dump-preprocessing-info.

  • Чтобы переопределить определение макроса, исходящее из спецификации компилятора, используйте опцию Preprocessor definitions (-D).

  • Чтобы не определить макрос, используйте эту опцию.

Информация о командной строке

Вы можете задать только один флаг с каждым -U опция. Однако можно задать опцию несколько раз.

Параметр: -U
По умолчанию нет
Значение: macro
Пример (Bug Finder): polyspace-bug-finder -U HAVE_MYLIB -U USE_COM1
Пример (Code Prover): polyspace-code-prover -U HAVE_MYLIB -U USE_COM1
Пример (Bug Finder Server): polyspace-bug-finder-server -U HAVE_MYLIB -U USE_COM1
Пример (Code Prover Server): polyspace-code-prover-server -U HAVE_MYLIB -U USE_COM1