Определения препроцессора (/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
Откройте диалоговое окно проекта Страницы свойств. Дополнительные сведения см. в разделе Открытие свойств страниц проекта.
В левой области последовательно нажмите 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
}
См. также
Ссылки
Настройка параметров компилятора
Параметры /U и /u (отмена определения символа)
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Июль 2010 |
Добавлено, что для определения одного символа препроцессора "%" необходимо ввести два символа "%%". |
Исправление ошибки содержимого. |