Bagikan melalui


Peringatan kompilator C/C++ Microsoft C4800 hingga C4999

Artikel di bagian ini menjelaskan pesan peringatan pengkompilasi Microsoft C/C++ C4800-C4999.

Penting

Alat kompilator dan build Visual Studio dapat melaporkan banyak jenis kesalahan dan peringatan. Setelah kesalahan atau peringatan ditemukan, alat build dapat membuat asumsi tentang niat kode dan mencoba melanjutkan, sehingga lebih banyak masalah dapat dilaporkan pada saat yang sama. Jika alat membuat asumsi yang salah, kesalahan atau peringatan yang lebih baru mungkin tidak berlaku untuk proyek Anda. Saat Anda memperbaiki masalah dalam proyek Anda, selalu mulai dengan kesalahan pertama atau peringatan yang dilaporkan, dan sering membangun kembali. Satu perbaikan dapat membuat banyak kesalahan berikutnya hilang.

Untuk mendapatkan bantuan pada pesan diagnostik tertentu di Visual Studio, pilih di jendela Output dan tekan tombol F1 . Visual Studio membuka halaman dokumentasi untuk kesalahan tersebut, jika ada. Anda juga dapat menggunakan alat pencarian di bagian atas halaman untuk menemukan artikel tentang kesalahan atau peringatan tertentu. Atau, telusuri daftar kesalahan dan peringatan berdasarkan alat dan ketik daftar isi di halaman ini.

Catatan

Tidak setiap kesalahan atau peringatan Visual Studio didokumenkan. Dalam banyak kasus, pesan diagnostik menyediakan semua informasi yang tersedia. Jika Anda masuk ke halaman ini ketika Anda menggunakan F1 dan Anda berpikir kesalahan atau pesan peringatan memerlukan penjelasan tambahan, beri tahu kami. Anda dapat menggunakan tombol umpan balik di halaman ini untuk memunculkan masalah dokumentasi di GitHub. Jika menurut Anda kesalahan atau peringatan salah, atau Anda menemukan masalah lain dengan set alat, laporkan masalah produk di situs Komunitas Pengembang. Anda juga dapat mengirim umpan balik dan memasukkan bug dalam IDE. Di Visual Studio, buka bilah menu dan pilih Bantuan > Kirim Umpan Balik > Laporkan Masalah, atau kirimkan saran dengan menggunakan Bantuan > Kirim Umpan Balik > Kirim Saran. Beberapa topik kesalahan kompilator dibuat yang tidak dipancarkan oleh pengkompilasi dan sekarang dialihkan ke halaman ini sebagai gantinya.

Anda mungkin menemukan bantuan tambahan untuk kesalahan dan peringatan di forum Tanya Jawab Microsoft Learn. Atau, cari kesalahan atau nomor peringatan di situs Komunitas Pengembang Visual Studio C++. Anda juga dapat mencari Stack Overflow untuk menemukan solusi.

Untuk tautan ke bantuan tambahan dan sumber daya komunitas, lihat Bantuan dan Komunitas Visual C++.

Pesan peringatan

Peringatan Pesan
Peringatan kompilator (tingkat 4, nonaktif) C4800 Konversi implisit dari 'type' ke bool. Kemungkinan kehilangan informasi
Peringatan kompilator C4801 Pengembalian menurut referensi tidak dapat diverifikasi: pesan
Peringatan kompilator (tingkat 1) C4803 'method': metode raise memiliki kelas penyimpanan yang berbeda dari peristiwa, 'event'
Peringatan kompilator (tingkat 1) C4804 'operation': penggunaan tipe 'bool' tidak aman dalam operasi
Peringatan kompilator (tingkat 1) C4805 'operation': unsafe mix of type 'type1' and type 'type2' in operation
Peringatan kompilator (tingkat 1) C4806 'operation': unsafe operation: no value of type 'type1' promoted to type 'type2' can equal the given constant
Peringatan kompilator (tingkat 1) C4807 'operation': campuran tidak aman dari tipe 'type1' dan bidang bit bertanda tangan tipe 'type2'
Peringatan kompilator (tingkat 1) C4808 case 'value' bukan nilai yang valid untuk switch kondisi tipe 'bool'
Peringatan kompilator (tingkat 1) C4809 switch pernyataan memiliki label 'default' redundan; semua label 'case' yang mungkin diberikan
Peringatan kompilator (tingkat 1) C4810 nilai = pragma pack(show) = n
Peringatan kompilator (tingkat 1) C4811 pragma conform(forScope, show) == nilai nilai
Peringatan kompilator (tingkat 1) C4812 Gaya deklarasi usang: silakan gunakan 'new_syntax' sebagai gantinya
Peringatan kompilator (tingkat 1) C4813 'function': fungsi teman dari kelas lokal harus telah dideklarasikan sebelumnya
Peringatan kompilator (tingkat 4) C4815 'nama objek': array berukuran nol dalam objek tumpukan tidak akan memiliki elemen (kecuali objek adalah agregat yang telah diinisialisasi agregat)
Peringatan kompilator (tingkat 4) C4816 'param': parameter memiliki array berukuran nol yang akan dipotong (kecuali objek diteruskan oleh referensi)
Peringatan kompilator (tingkat 1) C4817 'member': penggunaan ilegal '.' untuk mengakses anggota ini; compiler diganti dengan '->'
Peringatan kompilator (tingkat 1) C4819 File berisi karakter yang tidak dapat diwakili di halaman kode saat ini (angka). Simpan file dalam format Unicode untuk mencegah kehilangan data
Peringatan kompilator (tingkat 4, nonaktif) C4820 Padding byte 'byte' ditambahkan setelah membangun 'member_name'
Peringatan kompilator (tingkat 1) C4821 Tidak dapat menentukan jenis pengodean Unicode, simpan file dengan tanda tangan (BOM)
Peringatan kompilator (tingkat 1, nonaktif) C4822 'fungsi anggota': fungsi anggota kelas lokal tidak memiliki isi
Peringatan kompilator (tingkat 3) C4823 'function': menggunakan penyematan pointer tetapi semantik unwind tidak diaktifkan. Pertimbangkan untuk menggunakan /EHa
Peringatan kompilator (tingkat 2, nonaktif) C4826 Konversi dari 'type1' ke 'type2' diperpanjang. Ini dapat menyebabkan perilaku runtime tak terduga.
Peringatan kompilator (tingkat 3) C4827 Metode 'ToString' publik dengan 0 parameter harus ditandai sebagai virtual dan override
Peringatan kompilator (tingkat 1) C4828 File berisi karakter yang dimulai dari offset 0xHexOffset yang ilegal dalam kumpulan karakter sumber saat ini (codepage codepage).
Peringatan kompilator (tingkat 1) C4829 Mungkin parameter yang salah untuk berfungsi main. Pertimbangkan 'int main(Platform::Array<Platform::String^>^ argv)'
Peringatan Pengompilasi (level 1) C4834 membuang nilai pengembalian fungsi dengan atribut 'nodiscard'
Peringatan kompilator (tingkat 1) C4835 'variabel': inisialisasi untuk data yang diekspor tidak akan dijalankan sampai kode terkelola pertama kali dijalankan di rakitan host
Peringatan kompilator (tingkat 4, nonaktif) C4837 trigraf terdeteksi: '??karakter' digantikan oleh 'karakter'
Peringatan kompilator (tingkat 1) C4838 konversi dari 'type_1' ke 'type_2' memerlukan konversi yang mempersempit
Peringatan kompilator (tingkat 3) C4839 penggunaan non-standar kelas 'type' sebagai argumen ke fungsi variadik
Peringatan kompilator (tingkat 4) C4840 penggunaan non-portabel dari kelas 'type' sebagai argumen ke fungsi variadik
Peringatan kompilator (tingkat 4, nonaktif) C4841 ekstensi non-standar yang digunakan: pendesain anggota gabungan yang digunakan dalam offsetof
Peringatan pengkompilasi (tingkat 4, nonaktif) C4842 hasil 'offsetof' yang diterapkan pada jenis menggunakan beberapa warisan tidak dijamin konsisten antara rilis kompilator
Peringatan kompilator (tingkat 4) C4843 'type1': Penanganan pengecualian referensi ke array atau jenis fungsi tidak dapat dijangkau, gunakan 'type2' sebagai gantinya
Peringatan kompilator (tingkat 1) C4844 ' 'export module module_name;sekarang adalah sintaks yang disukai untuk mendeklarasikan antarmuka modul
Peringatan kompilator (tingkat 4) C4845 '__declspec(no_init_all)' diabaikan jika '/d1initall[0|1|2|3]' tidak ditentukan pada baris perintah
Peringatan kompilator (tingkat 4) C4846 'value' bukan argumen yang valid untuk '/d1initall': bendera baris perintah diabaikan
Peringatan kompilator (tingkat 4) C4847 '__declspec(no_init_all)' hanya dapat diterapkan ke fungsi, jenis kelas, atau variabel lokal: diabaikan
Peringatan kompilator (tingkat 1) C4848 dukungan untuk atribut standar 'no_unique_address' di C++17 dan yang lebih lama adalah ekstensi vendor
Peringatan kompilator (tingkat 1) C4849 Klausul 'klausa' OpenMP diabaikan dalam direktif 'direktif'
Peringatan kompilator (Tingkat 1, kesalahan) C4854 mengikat penunjuk null dereferensi ke referensi memiliki perilaku yang tidak ditentukan
Peringatan pengkompilasi (tingkat 1, nonaktif) C4855 pengambilan implisit 'this' melalui '[=]' tidak digunakan lagi dalam 'versi'
Peringatan kompilator (tingkat 4) C4856 'value' bukan argumen yang valid untuk '/d1initAll:FillPattern' (nilai harus antara 0 dan 255). Bendera baris perintah diabaikan
Peringatan kompilator (tingkat 1) C4857 Mode C++/CLI tidak mendukung versi C++ yang lebih baru dari C++17; mengatur bahasa ke /std:c++17
Peringatan kompilator (tingkat 1) C4858 membuang nilai pengembalian: nama fungsi
Peringatan kompilator (tingkat 4) C4859 'value' bukan argumen yang valid untuk '/presetWarn': harus berupa nilai > desimal 0. Bendera baris perintah diabaikan
Peringatan kompilator (tingkat 4) C4860 'nama objek': compiler nol inisialisasi 'angka' byte penyimpanan
Peringatan kompilator (tingkat 4) C4861 compiler nol inisialisasi 'angka' byte penyimpanan
Peringatan kompilator (tingkat 4) C4866 compiler mungkin tidak memberlakukan urutan evaluasi kiri-ke-kanan untuk panggilan ke operator_name
Peringatan kompilator (tingkat 1, kesalahan) C4867 'function': function call missing argument list; use 'call' to create a pointer to member
Peringatan kompilator (tingkat 4) C4868 Pengompilasi 'file(line_number)' mungkin tidak memberlakukan urutan evaluasi kiri-ke-kanan dalam daftar inisialisasi braced
Peringatan kompilator (tingkat 3) C4869 'nodiscard' hanya dapat diterapkan ke kelas, enumerasi, dan fungsi
Peringatan kompilator (tingkat 2) C4872 pembagian titik mengambang dengan nol terdeteksi saat mengkompilasi grafik panggilan untuk concurrency::parallel_for_each di: 'lokasi'
Peringatan kompilator (tingkat 1) C4880 casting dari 'const type_1' ke 'type_2': membuang kesadaran dari pointer atau referensi dapat mengakibatkan perilaku yang tidak ditentukan dalam fungsi yang dibatasi amp
Peringatan kompilator (tingkat 4) C4881 konstruktor dan/atau destruktor tidak akan dipanggil untuk tile_static variabel 'variable-name'
Peringatan kompilator (tingkat 1) C4882 meneruskan funktor dengan operator panggilan non-const ke concurrency::parallel_for_each tidak digunakan lagi
Peringatan kompilator C4883 'nama fungsi': ukuran fungsi menekan pengoptimalan
Peringatan kompilator C4900 Akan tidak cocok antara versi 'tool1' 'version1' dan 'tool2' versi 'version2'
Peringatan kompilator (tingkat 1, nonaktif) C4905 string lebar literal cast ke 'LPSTR'
Peringatan kompilator (tingkat 1, nonaktif) C4906 string literal cast ke 'LPWSTR'
Peringatan kompilator (Kesalahan) C4907 beberapa konvensi panggilan tidak dapat ditentukan; terakhir diberikan akan digunakan
Peringatan kompilator (tingkat 1) C4910 '<pengidentifikasi>: '__declspec(dllexport)' dan 'extern' tidak kompatibel pada instansiasi eksplisit
Peringatan kompilator (tingkat 1) C4912 'attribute': atribut memiliki perilaku yang tidak ditentukan pada UDT berlapis
Peringatan kompilator (tingkat 4) C4913 operator biner ',' yang ditentukan pengguna ada tetapi tidak ada kelebihan beban yang dapat mengonversi semua operand, operator biner bawaan default ',' yang digunakan
Peringatan kompilator (tingkat 1) C4916 untuk memiliki dispid, 'deskripsi': harus diperkenalkan oleh antarmuka
Peringatan kompilator (tingkat 1, nonaktif) C4917 'deklarator': GUID hanya dapat dikaitkan dengan kelas, antarmuka, atau namespace
Peringatan kompilator (tingkat 4) C4918 'character': karakter tidak valid dalam daftar pengoptimalan pragma
Peringatan kompilator (tingkat 1) C4920 anggota enum-name member_1=value_1 sudah terlihat dalam enum-name sebagai member_2 value_2=
Peringatan kompilator (tingkat 3) C4921 'description': nilai atribut 'atribut' tidak boleh dikalikan ditentukan
Peringatan kompilator (tingkat 1) C4925 'method': metode dispinterface tidak dapat dipanggil dari skrip
Peringatan kompilator (tingkat 1) C4926 'pengidentifikasi': simbol sudah ditentukan: atribut diabaikan
Peringatan kompilator (tingkat 1) C4927 konversi ilegal; lebih dari satu konversi yang ditentukan pengguna telah diterapkan secara implisit
Peringatan kompilator (tingkat 1, nonaktif) C4928 inisialisasi salinan ilegal; lebih dari satu konversi yang ditentukan pengguna telah diterapkan secara implisit
Peringatan kompilator (tingkat 1) C4929 'file': typelibrary berisi penyatuan; mengabaikan kualifikasi 'embedded_idl'
Peringatan kompilator (tingkat 1) C4930 'prototipe': fungsi yang diprototi tidak disebut (apakah definisi variabel dimaksudkan?)
Peringatan kompilator (tingkat 4, nonaktif) C4931 kami berasumsi pustaka jenis dibangun untuk pointer number-bit
Peringatan kompilator (tingkat 4) C4932 __identifier(pengidentifikasi) dan __identifier(pengidentifikasi) tidak dapat dibedakan
Peringatan kompilator (tingkat 1) C4934 '__delegate(multicast)' tidak digunakan lagi, gunakan '__delegate' sebagai gantinya
Peringatan kompilator (tingkat 1) C4935 penentu akses perakitan dimodifikasi dari 'akses'
Peringatan pengkompilasi (tingkat 1, Kesalahan) C4936 __declspec ini hanya didukung saat dikompilasi dengan /clr atau /clr:pure
Peringatan kompilator (tingkat 4) C4937 'text1' dan 'text2' tidak dapat dibedakan sebagai argumen untuk 'direktif'
Peringatan kompilator (tingkat 4) C4938 'var': Variabel pengurangan titik mengambang dapat menyebabkan hasil yang tidak konsisten di bawah /fp:strict atau #pragma fenv_access
Peringatan kompilator C4939 #pragma vtordisp tidak digunakan lagi dan akan dihapus dalam rilis Visual C++ di masa mendatang
Peringatan kompilator (tingkat 1) C4944 'simbol': tidak dapat mengimpor simbol dari 'assembly1': karena 'simbol' sudah ada dalam cakupan saat ini
Peringatan kompilator (tingkat 1) C4945 'simbol': tidak dapat mengimpor simbol dari 'assembly1': karena 'simbol' telah diimpor dari rakitan lain 'assembly2'
Peringatan kompilator (tingkat 1, nonaktif) C4946 reinterpret_cast digunakan antara kelas terkait: 'class1' dan 'class2'
Peringatan kompilator (tingkat 1) C4947 'type_or_member': ditandai sebagai usang
Peringatan kompilator (tingkat 2) C4948 jenis pengembalian 'aksesor' tidak cocok dengan jenis parameter terakhir dari setter yang sesuai
Peringatan kompilator (tingkat 1 dan tingkat 4) C4949 pragmas 'managed' dan 'unmanaged' hanya bermakna ketika dikompilasi dengan '/clr[:option]'
Peringatan kompilator (tingkat 1, Kesalahan) C4950 'type_or_member': ditandai sebagai usang
Peringatan kompilator (tingkat 1) C4951 'fungsi' telah diedit sejak data profil dikumpulkan, data profil fungsi tidak digunakan
Peringatan kompilator (tingkat 1) C4952 'function': tidak ada data profil yang ditemukan dalam database program 'pgd-file'
Peringatan kompilator (tingkat 1) C4953 Sebaris 'fungsi' telah diedit sejak data profil dikumpulkan, data profil tidak digunakan
Peringatan kompilator C4954 'function': not profiled (berisi __int64 ekspresi pengalihan)
Peringatan kompilator C4955 'import2': impor diabaikan; sudah diimpor dari 'import1'
Peringatan kompilator (tingkat 1, Kesalahan) C4956 'type': tipe ini tidak dapat diverifikasi
Peringatan kompilator (tingkat 1, Kesalahan) C4957 'cast': cast eksplisit dari 'cast_from' ke 'cast_to' tidak dapat diverifikasi
Peringatan kompilator (tingkat 1, Kesalahan) C4958 'operation': pointer aritmetic tidak dapat diverifikasi
Peringatan kompilator (tingkat 1, Kesalahan) C4959 tidak dapat menentukan jenis 'type' yang tidak dikelola karena mengakses anggotanya menghasilkan kode yang tidak dapat diverifikasi /clr:safe
Peringatan kompilator (tingkat 4) C4960 'function' terlalu besar untuk dibuat profilnya
Peringatan kompilator (tingkat 1) C4961 Tidak ada data profil yang digabungkan ke dalam 'pgd-file', pengoptimalan yang dipandu profil dinonaktifkan
Peringatan kompilator (tingkat 4, nonaktif) C4962 'function': Pengoptimalan yang dipandu profil dinonaktifkan karena pengoptimalan menyebabkan data profil menjadi tidak konsisten
Peringatan kompilator (tingkat 1) C4963 'description': tidak ada data profil yang ditemukan; opsi pengkompilasi yang berbeda digunakan dalam build berinstrumen
Peringatan kompilator (tingkat 1) C4964 Tidak ada opsi pengoptimalan yang ditentukan; info profil tidak akan dikumpulkan
Peringatan kompilator (tingkat 1) C4965 kotak implisit bilangan bulat 0; gunakan nullptr atau cast eksplisit
Peringatan kompilator (tingkat 1) C4966 'function' memiliki __code_seg anotasi dengan nama segmen yang tidak didukung, anotasi diabaikan
Peringatan kompilator C4970 mendelegasikan konstruktor: objek target diabaikan karena 'jenis' statis
Peringatan kompilator (tingkat 1) C4971 Urutan argumen: <objek> target, <fungsi> target untuk konstruktor delegasi tidak digunakan lagi, gunakan <fungsi> target, <objek target="">
Peringatan kompilator (tingkat 1, Kesalahan) C4972 Memodifikasi atau memperlakukan hasil operasi unbox secara langsung karena lvalue tidak dapat diverifikasi
Peringatan kompilator (tingkat 1) C4973 'simbol': ditandai sebagai tidak digunakan lagi
Peringatan kompilator (tingkat 1) C4974 'simbol': ditandai sebagai tidak digunakan lagi
Peringatan kompilator (tingkat 1) C4975 modopt '[modifier]' diabaikan untuk parameter formal 'parameter'
Peringatan kompilator (tingkat 1) C4976 nilai 'nilai' tidak valid untuk '/W'; dengan asumsi '1'
Peringatan kompilator (tingkat 3) C4981 Warbird: fungsi 'fungsi' ditandai sebagai __forceinline tidak sebaris karena berisi semantik pengecualian
Peringatan kompilator (tingkat 3) C4983 '/analyze:sarif:hashname' diabaikan karena argumen ke '/analyze:log' adalah satu file daripada direktori
Peringatan kompilator C4984 'if constexpr' adalah ekstensi bahasa C++17
Peringatan kompilator (tingkat 4) C4985 'symbol_name': atribut tidak ada pada deklarasi sebelumnya.
Peringatan kompilator (tingkat 4, nonaktif) C4986 'deklarasi': spesifikasi pengecualian tidak cocok dengan deklarasi sebelumnya
Peringatan kompilator (tingkat 4, nonaktif) C4987 ekstensi nonstandar yang digunakan: 'throw (...)'
Peringatan kompilator (tingkat 4, nonaktif) C4988 'variabel': variabel dideklarasikan di luar lingkup kelas/fungsi
Peringatan kompilator (tingkat 4) C4989 'type': type memiliki definisi yang bertentangan.
Peringatan kompilator (tingkat 3) C4990 Warbird: pesan
Peringatan kompilator (tingkat 3) C4991 Warbird: fungsi 'fungsi' ditandai sebagai __forceinline tidak sebaris karena tingkat perlindungan sebaris lebih besar dari induk
Peringatan kompilator (tingkat 3) C4992 Warbird: fungsi 'function-name' ditandai sebagai __forceinline tidak inlined karena berisi rakitan sebaris yang tidak dapat dilindungi
Peringatan kompilator (tingkat 3) C4995 'function': nama ditandai sebagai #pragma tidak digunakan lagi
Peringatan kompilator (tingkat 3) C4996 'deprecated-declaration': deprecation-message (atau "dinyatakan tidak digunakan lagi")
Peringatan kompilator (tingkat 1) C4997 'class': coclass tidak mengimplementasikan antarmuka COM atau antarmuka pseudo
Peringatan kompilator (tingkat 1) C4998 EKSPEKTASI GAGAL: ekspektasi(nilai)

Lihat juga

Kesalahan dan peringatan C/C++ Compiler dan build tools
Peringatan kompilator C4000 - C5999