Aracılığıyla paylaş


warning pragma

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

Sözdizimi

#pragma warning(
 [ ]
  [ ... ]
[ n ]
#pragma warning( pop )

Açıklamalar

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

uyarı belirtici Anlam
, , , Belirtilen uyarılara verilen düzeyi uygulayın. Örneğin: uyarı seviyesi veya daha yükseğe ayarlanmadığı 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ı ö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 geçerli durumunu bildirir, sonraki satır için belirtilen uyarıyı devre dışı bırakır ve ardından uyarı yığınını durumunun sıfırlanması için açar.
justification Uyarıyı devre dışı bırakmanın veya gizlemenin nedenini açıklayan isteğe bağlı dize. Visual Studio 2022 sürüm 17.14'te kullanıma sunulmuştur.

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

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

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

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

Bir uyarının neden devre dışı bırakıldığını veya gizlenmekte olduğunu açıklamak için alanını kullanın. Bu alan yalnızca ve için desteklenir. Gerekçe, seçenek belirtildiğinde Statik Çözümleme Sonuçları Değişim Biçimi (SARIF) çıkışında görünür. Değeri, UTF-8 kodlu bir dar dize değişmez değeridir. SARIF dosyası oluşturmak için derleyici seçeneğini kullanın .

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 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 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, son ayarının işlevin tamamı için geçerli olduğuna dikkat edin.

Gönder ve aç

, 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 )

her uyarı için geçerli uyarı durumunu depolar. her uyarı için geçerli durumu depolar ve genel uyarı düzeyini nolarak ayarlar.

, yığına gönderilen son uyarı durumunu gösterir. uyarı durumunda ile 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, her uyarının durumunu (4705, 4706 ve 4707 dahil) kodun başındaki durumuna geri yükler.

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

ve arasında seçim

Hem hem de uyarı gizleme üzerinde ayrıntılı denetim sunar:

  • [[gsl::suppress]] yalnızca Microsoft C++ Code Analysis tarafından yayılan uyarıları gizler. Bunu bir kapsama veya belirli bir bildirime uygulanabilen C++ Çekirdek Yönergeleri denetimleriyle kullanın.
  • herhangi bir derleyici uyarısı için kullanılabilir. Kodun yapısını önemli ölçüde değiştirmeden belirli bir kod bloğundaki bir uyarıyı gizlemeniz gerektiğinde kullanışlıdır.

Mümkün olduğunda Microsoft C++ Code Analysis uyarılarını engellemek için [[gsl::suppress]] kullanın.

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

Ayrıca bkz.

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