Поделиться через


Определения препроцессора (/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

  1. Откройте диалоговое окно Окна свойств проекта. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.

  2. В левой области выберите Свойства конфигурации, C/C++, Препроцессор.

  3. В правой области в правом столбце свойства Определения препроцессора откройте раскрывающееся меню и выберите Изменить.

  4. В диалоговом окне Определения препроцессора добавьте (по одному в строке), измените или удалите одно или несколько определений. Выберите ОК для сохранения внесенных изменений.

Установка данного параметра компилятора программным способом

Пример

// 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
}
  

См. также

Ссылки

Параметры компилятора

Настройка параметров компилятора

Параметры /U и /u (отмена определения символа)

Директива #undef (C/C++)

Директива #define (C/C++)