Aracılığıyla paylaş


warning pragma

Derleyici uyarı iletilerinin davranışının seçmeli olarak değiştirilmesini etkinleştirir.

Sözdizimi

#pragma warning(
warning-specifier : warning-number-list
 [; warning-specifier : warning-number-list ... ] )
#pragma warning( push [ , n ] )
#pragma warning( pop )

Açıklamalar

Aşağıdaki uyarı belirtici parametreleri kullanılabilir.

uyarı belirtici Anlamı
1, 2, 3, 4 Belirtilen uyarılara verilen düzeyi uygulayın. Ayrıca varsayılan olarak kapalı olan belirtilen bir uyarıyı da açar.
default Uyarı davranışını varsayılan değerine sıfırlayın. Ayrıca varsayılan olarak kapalı olan belirtilen bir uyarıyı da açar. Uyarı varsayılan, belgelenmiş ve düzeyinde oluşturulur.

Daha fazla bilgi için bkz . Varsayılan olarak kapalı olan derleyici uyarıları.
disable Belirtilen uyarı iletilerini verme.
error Belirtilen uyarıları hata olarak bildirin.
once Belirtilen iletileri yalnızca bir kez görüntüleyin.
suppress Yığının geçerli durumunu pragma iletir, sonraki satır için belirtilen uyarıyı devre dışı bırakır ve ardından uyarı yığınını açar, böylece pragma durum sıfırlanır.

Aşağıdaki kod deyimi, bir warning-number-list parametrenin birden çok uyarı numarası içerebileceğini ve aynı pragma yönergede birden çok warning-specifier parametrenin belirtilebileceğini gösterir.

#pragma warning( disable : 4507 34; once : 4385; error : 164 )

Bu yönerge işlevsel olarak aşağıdaki koda eşdeğerdir:

// Disable warning messages 4507 and 4034.
#pragma warning( disable : 4507 34 )

// Issue warning C4385 only once.
#pragma warning( once : 4385 )

// Report warning C4164 as an error.
#pragma warning( error : 164 )

Derleyici, 0 ile 999 arasında herhangi bir uyarı numarasına 4000 ekler.

4700-4999 aralığındaki uyarı numaraları kod oluşturma ile ilişkilendirilir. Bu uyarılar için, derleyici işlev tanımına ulaştığında uyarının geçerli olan durumu işlevin geri kalanı için geçerli olmaya devam eder. warningpragma 4699'dan büyük bir uyarı numarasının durumunu değiştirmek için işlevinin kullanılması yalnızca işlevin sonundan sonra geçerli olur. Aşağıdaki örnekte, bir kod oluşturma uyarı iletisini devre dışı bırakmak ve ardından geri yüklemek için doğru yerleşimi warningpragma gösterilmektedir.

// pragma_warning.cpp
// compile with: /W1
#pragma warning(disable:4700)
void Test() {
   int x;
   int y = x;   // no C4700 here
   #pragma warning(default:4700)   // C4700 enabled after Test ends
}

int main() {
   int x;
   int y = x;   // C4700
}

İşlev gövdesi boyunca işlevinin tamamı için öğesinin warningpragma son ayarının geçerli olduğuna dikkat edin.

Gönder ve aç

, warningpragma isteğe bağlı n parametresinin bir uyarı düzeyini (1 ile 4 arasında) temsil ettiği aşağıdaki söz dizimini de destekler.

#pragma warning( push [ , n ] )

#pragma warning( pop )

her pragmawarning( push ) uyarı için geçerli uyarı durumunu depolar. her pragmawarning( push, n ) uyarı için geçerli durumu depolar ve genel uyarı düzeyini n olarak ayarlar.

, pragmawarning( pop ) yığına gönderilen son uyarı durumunu gösterir. ile arasında push pop uyarı durumunda yaptığınız tüm değişiklikler geri alınıyor. Bu örneği ele alalım:

#pragma warning( push )
#pragma warning( disable : 4705 )
#pragma warning( disable : 4706 )
#pragma warning( disable : 4707 )
// Some code
#pragma warning( pop )

Bu kodun sonunda, pop her uyarının durumunu (4705, 4706 ve 4707 içerir) kodun başındaki durumuna geri yükler.

Üst bilgi dosyaları yazarken, bir kullanıcı tarafından yapılan uyarı durumu değişikliklerinin üst bilgilerin doğru derlenmesini engellememesini sağlamak için ve pop kullanabilirsinizpush. Üst bilginin başında ve pop sonunda kullanınpush. Örneğin, uyarı düzeyi 4'te temiz bir şekilde derlenmeyecek bir üst bilginiz olabilir. Aşağıdaki kod uyarı düzeyini 3 olarak değiştirir ve ardından üst bilginin sonundaki özgün uyarı düzeyini geri yükler.

#pragma warning( push, 3 )
// Declarations/definitions
#pragma warning( pop )

Uyarıları gizlemenize yardımcı olan derleyici seçenekleri hakkında daha fazla bilgi için bkz /FI . ve /w.

Ayrıca bkz.

Pragma yönergeleri ve __pragma ve _Pragma anahtar sözcükleri