Определения препроцессора (/D)
Обновлен: Ноябрь 2007
Определяет символ препроцессора для вашего исходного файла.
/Dname[= | # [{string | number}] ]
Заметки
Можно использовать этот символ с #if или #ifdef для условной компиляции исходного кода. Определение символа остается в силе до тех пор, пока не встретится переопределение в файле источника или символ, не определенный в источнике при помощи директивы #undef.
/D дает точно такой же эффект, как и использование директивы #define в начале исходного файла. Но /D снимает кавычки в командной строке, и #define возвращает их.
По умолчанию значение, связанное с символом, будет равно 1. Следовательно, /DTEST является эквивалентным /DTEST=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
Установка параметра компилятора в среде разработки 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
}
TEST defined 1
См. также
Ссылки
Настройка параметров компилятора