Bagikan melalui


warning pragma

Mengaktifkan modifikasi selektif perilaku pesan peringatan kompilator.

Sintaksis

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

Komentar

Parameter penentu peringatan berikut tersedia.

penentu peringatan Arti
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 Compiler 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 saat ini pada tumpukan, menonaktifkan peringatan yang ditentukan untuk baris berikutnya, lalu memunculkan tumpukan peringatan sehingga status pragma diatur ulang.

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

#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 warningpragma yang benar untuk menonaktifkan pesan peringatan pembuatan kode, 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 terakhir warningpragma akan berlaku untuk seluruh fungsi.

Dorong dan pop

warning pragma juga mendukung sintaks berikut, di mana parameter n opsional mewakili tingkat peringatan (1 hingga 4).

#pragma warning( push [ , n ] )

#pragma warning( pop )

pragma warning( push ) menyimpan status peringatan saat ini untuk setiap peringatan. pragma warning( push, n ) menyimpan status saat ini untuk setiap peringatan dan mengatur tingkat peringatan global ke n.

pragma warning( pop ) memunculkan 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.

Lihat juga

arahan Pragma dan kata kunci __pragma dan _Pragma