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 , justification : string-literal[ ]
; 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. Örneğin: #pragma warning (3 : 5033) uyarı seviyesi veya daha yükseğe ayarlanmadığı /w3 sürece 5033 uyarısını (normalde seviye 1 uyarısı) kapatır. Ayrıca, varsayılan olarak kapalı olan belirli bir uyarıyı açmak için de kullanılabilir.
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ını .
disable Belirtilen uyarı iletilerini verme. İsteğe bağlı justification özelliğe izin verilir.
error Belirtilen uyarıları hata olarak bildirin.
once Belirtilen iletileri yalnızca bir kez görüntüleyin.
suppress Yığındaki pragma geçerli durumunu bildirir, sonraki satır için belirtilen uyarıyı devre dışı bırakır ve ardından uyarı yığınını pragma durumunun sıfırlanması için açar. İsteğe bağlı justification özelliğe izin verilir.

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

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

Ancak, alan mevcut olduğunda justification , yalnızca bir uyarı numarası belirtilebilir. Aşağıdaki kod deyimi, alanın kullanımını justification gösterir.

#pragma warning( disable : 4507, justification : "This warning is disabled" )

Alanlar justification , bir uyarının neden devre dışı bırakıldığını veya gizlendiğini açıklamanıza olanak tanır. Bu justification alan yalnızca ve disablesuppressiçin warning-specifier desteklenir. Bu değer, seçenek belirtildiğinde SARIF çıktısında /analyze:log:includesuppressed görünecektir. Değeri, UTF-8 kodlu bir dar dize değişmez değeridir.

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

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

// 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. 4699'dan büyük bir uyarı numarasının durumunu değiştirmek için işlevdeki warningpragma kullanılması yalnızca işlevin sonundan sonra geçerli olur. Aşağıdaki örnekte, kod oluşturma uyarı iletisini devre dışı bırakmak ve ardından geri yüklemek için bir warningpragma doğru yerleşimi 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 compiling Test()
}

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

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

Gönder ve aç

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

#pragma warning( push [ , n ] )

#pragma warning( pop )

pragma warning( push ) her uyarı için geçerli uyarı durumunu depolar. her uyarı için geçerli durumu depolar ve genel uyarı düzeyini nolarak ayarlar.

pragma warning( pop ), yığına gönderilen son uyarı durumunu gösterir. uyarı durumunda push ile pop arasında yaptığınız tüm değişiklikler geri alınıyor. Şu örneği göz önünde bulundurun:

#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 dahil) kodun başındaki durumuna geri yükler.

Üst bilgi dosyaları yazarken, push ve pop kullanarak kullanıcının yaptığı uyarı durumu değişikliklerinin üst bilgilerin doğru derlenmesini engellememesini sağlayabilirsiniz. Üst bilginin başındaki push ve sonunda pop kullanın. Ö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