/D (Önişlemci Tanımları)
Bir kaynak dosyası için önceden işleme simgesini tanımlar.
Sözdizimi
/D
[ ]name[=
|#
[{ dize | numarası }] ]
/D
[ ]"
name[=
|#
[{ dize | numarası }] ]"
Açıklamalar
Kaynak kodunu koşullu olarak derlemek için veya #ifdef
ile #if
birlikte bu simgeyi kullanabilirsiniz. Sembol tanımı, kodda yeniden tanımlanıncaya veya kodda bir #undef
yönerge tarafından tanımlanmayana kadar etkin kalır.
/D
, bir kaynak kod dosyasının başındaki yönergeyle #define
aynı etkiye sahiptir. Aralarındaki /D
fark, komut satırında tırnak işaretlerini ayırması ve yönergenin #define
bunları alıkoyma olmasıdır. ve simgesi arasında /D
boşluk olabilir. Simge ile eşittir işareti arasında veya eşittir işareti ile atanan değer arasında boşluk olamaz.
Varsayılan olarak, simgeyle ilişkilendirilen değer 1'dir. Örneğin /D name
ile /D name=1
eşdeğerdir. Bu makalenin sonundaki örnekte, öğesinin tanımı TEST
yazdırılacak 1
şekilde gösterilir.
kullanarak /D name=
derleme, simge adının ilişkili bir değere sahip olmamasına neden olur. Simge kodu koşullu olarak derlemek üzere kullanılmaya devam etse de, başka türlü bir değeri yoktur. Örnekte kullanarak derlerseniz /DTEST=
bir hata oluşur. Bu davranış, değeri olan veya olmayan kullanımına #define
benzer.
seçeneği /D
işlev benzeri makro tanımlarını desteklemez. Komut satırında tanımlanmayan tanımları eklemek için (Zorlamalı ekleme dosyası olarak adlandır) derleyici seçeneğini göz önünde bulundurun./FI
Daha fazla simge tanımlamak için komut satırında birden çok kez kullanabilirsiniz /D
. Aynı simge birden çok kez tanımlanmışsa, son tanım kullanılır.
Bu komut, TEST.c içinde DEBUG simgesini tanımlar:
CL /DDEBUG TEST.C
Bu komut, TEST.c dosyasında anahtar sözcüğün __far
tüm oluşumlarını kaldırır:
CL /D __far= TEST.C
CL ortam değişkeni, eşittir işaretini içeren bir dizeye ayarlanamaz. Ortam değişkeniyle CL
birlikte kullanmak /D
için eşittir işareti yerine sayı işaretini (#
) belirtmeniz gerekir:
SET CL=/DTEST#0
Komut isteminde önceden işleme simgesi tanımladığınızda, hem derleyici ayrıştırma kurallarını hem de kabuk ayrıştırma kurallarını göz önünde bulundurun. Örneğin, programınızda bir yüzde işareti ön işleme simgesi (%
) tanımlamak için komut isteminde iki yüzde işareti karakteri (%%
) belirtin. Yalnızca bir tane belirtirseniz ayrıştırma hatası görüntülenir.
CL /DTEST=%% TEST.C
Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için
Proje Özellik Sayfaları iletişim kutusunu açın. Daha fazla bilgi için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.
Yapılandırma Özellikleri>C/C++>Önişlemci özellik sayfasını seçin.
Önişlemci Tanımları özelliğinin açılan menüsünü açın ve Düzenle'yi seçin.
Önişlemci Tanımları iletişim kutusunda, satır başına bir veya daha fazla tanım ekleyin, değiştirin veya silin. Değişikliklerinizi kaydetmek için Tamam'ı seçin.
Burada belirttiğiniz tanımlara '/D' seçenek ön ekini eklemeniz gerekmez. Özellik sayfasında, tanımlar noktalı virgülle (
;
) ayrılır.
Bu derleyici seçeneğini program üzerinden ayarlamak için
- Bkz. PreprocessorDefinitions.
Örnek
// cpp_D_compiler_option.cpp
// compile with: cl /EHsc /DTEST cpp_D_compiler_option.cpp
#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
Ayrıca bkz.
MSVC derleyici seçenekleri
MSVC derleyicisi komut satırı söz dizimi
/FI
(Zorlamalı ekleme dosyasını adlandır)
/U
, /u
(Simge Tanımlamayı Kaldır)
#undef
Yönerge (C/C++)
#define
Yönerge (C/C++)