/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=1eş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

  1. Proje Özellik Sayfaları iletişim kutusunu açın. Daha fazla bilgi için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>C/C++>Önişlemci özellik sayfasını seçin.

  3. Önişlemci Tanımları özelliğinin açılan menüsünü açın ve Düzenle'yi seçin.

  4. Ö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

Ö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++)