Определения препроцессора (/D)
Определяет символ предварительной обработки для исходного файла.
/Dname[= | # [{string | number}] ]
Заметки
Этот символ можно использовать совместно с #if или #ifdef для условной компиляции исходного кода. Определение символа остается в силе до тех пор, пока он не будет переопределен в коде или его определение не будет отменено в коде с помощью директивы #undef.
/D имеет тот же эффект, что и директива #define в начале файла исходного кода, за исключением того, что /D удаляет кавычки в командной строке, а #define сохраняет их.
По умолчанию значение, связанное с символом, равно 1. Например, запись /Dname эквивалентна записи /Dname**=1**. В примере в конце статьи показано, что определение TEST приводит к печати цифры 1.
При компиляции с использованием параметра /Dname**=** символ не имеет связанного значения. Хотя символа все равно можно использовать для условной компиляции кода, в остальных случаях использование символа будет бесполезным. В примере при компиляции с использованием /DTEST= возникает ошибка. Это поведение напоминает использование #define со значением или без значения.
Эта команда определяет символ DEBUG в файле TEST.c:
CL /DDEBUG TEST.C
Эта команда удаляет все вхождения ключевого слова __far из файла TEST.c:
CL /D__far= TEST.C
Для переменной среды CL невозможно задать строку, содержащую знак равенства. Чтобы использовать символ /D с переменной среды CL, вместо знака равенства необходимо указать знак решетки:
SET CL=/DTEST#0
При определении символа предварительной обработки в командной строке необходимо учитывать правила синтаксического разбора компилятора и правила синтаксического разбора оболочки. Например, чтобы определить в программе символ предварительной обработки в виде знака процентов (%), укажите в командной строке два знака процентов (%%): если указан только один знак, возникает ошибка синтаксического анализа.
CL /DTEST=%% TEST.C
Установка данного параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Окна свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
В левой области выберите Свойства конфигурации, C/C++, Препроцессор.
В правой области в правом столбце свойства Определения препроцессора откройте раскрывающееся меню и выберите Изменить.
В диалоговом окне Определения препроцессора добавьте (по одному в строке), измените или удалите одно или несколько определений. Выберите ОК для сохранения внесенных изменений.
Установка данного параметра компилятора программным способом
- См. раздел PreprocessorDefinitions.
Пример
// cpp_D_compiler_option.cpp
// compile with: /DTEST
#include <stdio.h>
int main( )
{
#ifdef TEST
printf_s("TEST defined %d\n", TEST);
#else
printf_s("TEST not defined\n");
#endif
}
См. также
Ссылки
Настройка параметров компилятора