Share via


warning pragma

Mengaktifkan modifikasi selektif perilaku pesan peringatan kompilator.

Sintaks

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

Keterangan

Parameter penentu peringatan berikut tersedia.

penentu peringatan Makna
1, 2, 3, 4 Terapkan tingkat yang diberikan ke peringatan yang ditentukan. Juga mengaktifkan peringatan tertentu yang nonaktif secara default.
default Reset perilaku peringatan ke nilai defaultnya. Juga mengaktifkan peringatan tertentu yang nonaktif secara default. Peringatan akan dihasilkan pada tingkat default, didokumenkan, .

Untuk informasi selengkapnya, lihat Peringatan pengkompilasi yang nonaktif secara default.
disable Jangan terbitkan pesan peringatan yang ditentukan.
error Laporkan peringatan yang ditentukan sebagai kesalahan.
once Tampilkan pesan yang ditentukan hanya satu kali.
suppress Mendorong status pragma tumpukan saat ini, menonaktifkan peringatan yang ditentukan untuk baris berikutnya, lalu memunculkan tumpukan peringatan sehingga pragma status diatur ulang.

Pernyataan kode berikut menggambarkan bahwa warning-number-list parameter dapat berisi beberapa angka peringatan, dan bahwa beberapa warning-specifier parameter dapat ditentukan dalam arahan yang sama pragma .

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

Arahan ini secara fungsional setara dengan kode berikut:

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

Pengkompilasi menambahkan 4000 ke nomor peringatan apa pun yang berada di antara 0 dan 999.

Nomor peringatan dalam rentang 4700-4999 dikaitkan dengan pembuatan kode. Untuk peringatan ini, status peringatan yang berlaku ketika kompilator mencapai definisi fungsi tetap berlaku untuk sisa fungsi. Penggunaan warningpragma dalam fungsi untuk mengubah status angka peringatan yang lebih besar dari 4699 hanya berlaku setelah akhir fungsi. Contoh berikut menunjukkan penempatan pesan peringatan pembuatan kode yang warningpragma benar untuk menonaktifkan, lalu memulihkannya.

// 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
}

Perhatikan bahwa di seluruh isi fungsi, pengaturan warningpragma terakhir akan berlaku untuk seluruh fungsi.

Dorong dan pop

Juga warningpragma mendukung sintaks berikut, di mana parameter n opsional mewakili tingkat peringatan (1 hingga 4).

#pragma warning( push [ , n ] )

#pragma warning( pop )

Menyimpan pragmawarning( push ) status peringatan saat ini untuk setiap peringatan. Menyimpan pragmawarning( push, n ) status saat ini untuk setiap peringatan dan mengatur tingkat peringatan global ke n.

Memunculkan pragmawarning( pop ) status peringatan terakhir yang didorong ke tumpukan. Setiap perubahan yang Anda buat pada status peringatan antara push dan pop dibatalkan. Pertimbangkan contoh ini:

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

Pada akhir kode ini, pop memulihkan status setiap peringatan (termasuk 4705, 4706, dan 4707) ke apa yang ada di awal kode.

Saat menulis file header, Anda dapat menggunakan push dan pop untuk menjamin bahwa perubahan status peringatan yang dibuat oleh pengguna tidak mencegah header dikompilasi dengan benar. Gunakan push di awal header dan pop di akhir. Misalnya, Anda mungkin memiliki header yang tidak dikompilasi dengan bersih pada tingkat peringatan 4. Kode berikut mengubah tingkat peringatan menjadi 3, lalu memulihkan tingkat peringatan asli di akhir header.

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

Untuk informasi selengkapnya tentang opsi pengompilasi yang membantu Anda menekan peringatan, lihat /FI dan /w.

Baca juga

Arahan Pragma dan __pragma_Pragma kata kunci