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


Определения препроцессора (/D)

Определяет символ препроцессора для исходного файла.

/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

При определении символа предварительной обработки в командной строке необходимо учитывать правила синтаксического разбора оболочки и правила синтаксического разбора компилятора. Например, чтобы определить в своей программе символ препроцессора в виде одного знака процента (%), введите в командной строке два знака процента (%%). Если указан только один символ процента, создается ошибка синтаксического анализа.

CL /DTEST=%% TEST.C

Установка параметра компилятора в среде разработки Visual Studio

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

  2. В левой области последовательно нажмите C/C++, затем Препроцессор.

  3. В правой области измените свойство Определения препроцессора.

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

Пример

// 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 Directive (C/C++)

#define Directive (C/C++)

Журнал изменений

Дата

Журнал

Причина

Июль 2010

Добавлено, что для определения одного символа препроцессора "%" необходимо ввести два символа "%%".

Исправление ошибки содержимого.