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 warning
pragma dalam fungsi untuk mengubah status angka peringatan yang lebih besar dari 4699 hanya berlaku setelah akhir fungsi. Contoh berikut menunjukkan penempatan warning
pragma 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 warning
pragma 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
.