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. warning
pragma 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 warning
pragma 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 warning
pragma son ayarının geçerli olduğuna dikkat edin.
Gönder ve aç
, warning
pragma 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