Compiler Warning (level 4) C4800
Visual Studio 2019 dan yang lebih baru:
Konversi implisit dari 'type' ke bool. Kemungkinan kehilangan informasi
C4800 adalah peringatan tingkat 3 di Visual Studio 2015 dan yang lebih lama:
'type' : memaksa nilai ke bool 'true' atau 'false' (peringatan performa)
Peringatan ini dihasilkan ketika nilai secara implisit dikonversi menjadi jenis bool
. Biasanya, pesan ini disebabkan oleh penetapan int
variabel ke bool
variabel di mana int
variabel hanya berisi nilai true
dan false
, dan dapat dinyatakan ulang sebagai jenis bool
. Jika Anda tidak dapat menulis ulang ekspresi untuk menggunakan jenis bool
, maka Anda dapat menambahkan "!=0
" ke ekspresi, yang memberikan jenis bool
ekspresi . Mentransmisikan ekspresi ke jenis bool
tidak menonaktifkan peringatan, yaitu berdasarkan desain.
Peringatan ini tidak dipancarkan di Visual Studio 2017.
Peringatan ini nonaktif secara default dimulai di Visual Studio 2019. Gunakan /wn4800 untuk mengaktifkan C4800 sebagai peringatan tingkat n , atau /Wall untuk mengaktifkan semua peringatan yang nonaktif secara default. Untuk informasi selengkapnya, lihat Peringatan Pengkompilasi yang Nonaktif Secara Default.
Contoh
Sampel berikut menghasilkan C4800 dan menunjukkan cara memperbaikinya:
// C4800.cpp
// compile with: /W4 /w44800
int main() {
int i = 0;
// To fix, instead try:
// bool i = 0;
bool j = i; // C4800
j++;
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk