Bagikan melalui


Peringatan kompilator C/C++ Microsoft C4000 hingga C4199

Artikel di bagian ini menjelaskan pesan peringatan pengkompilasi Microsoft C/C++ C4000 hingga C4199.

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, tidak lagi dipancarkan) C4001 ekstensi nonstandard 'komentar baris tunggal' digunakan
Peringatan kompilator (tingkat 1, Kesalahan) C4002 terlalu banyak argumen untuk 'pengidentifikasi' pemanggilan makro seperti fungsi
Peringatan kompilator (tingkat 1, Kesalahan) C4003 tidak cukup argumen untuk pemanggilan makro seperti fungsi 'pengidentifikasi'
Peringatan kompilator (tingkat 1) C4005 'pengidentifikasi': pendefinisian ulang makro
Peringatan kompilator (tingkat 1) C4006 #undef pengidentifikasi yang diharapkan
Peringatan kompilator (tingkat 3) C4007 'function': harus 'attribute'
Peringatan kompilator (tingkat 3) C4008 'function': atribut 'attribute' diabaikan
Peringatan kompilator (tingkat 1) C4010 komentar baris tunggal berisi karakter kelanjutan baris
Peringatan kompilator (tingkat 3) C4013 'function' undefined; dengan asumsi extern mengembalikan int
Peringatan kompilator (tingkat 1) C4015 'pengidentifikasi': jenis bidang bit harus integral
Peringatan kompilator (tingkat 3) C4018 'expression': ketidakcocokan yang ditandatangani/tidak ditandatangani
Peringatan kompilator (tingkat 4) C4019 pernyataan kosong pada cakupan global
Peringatan kompilator (tingkat 1) C4020 'function': terlalu banyak parameter aktual
Peringatan kompilator (tingkat 1) C4022 'function': ketidakcocokan pointer untuk parameter aktual 'parameter_number'
Peringatan kompilator (tingkat 1) C4023 'function': penunjuk berbasis diteruskan ke fungsi yang tidak diprototi: parameter 'parameter_number'
Peringatan kompilator (tingkat 1) C4024 'function': berbagai jenis untuk parameter formal dan aktual 'parameter_number'
Peringatan kompilator (tingkat 1) C4025 'function': penunjuk berbasis diteruskan ke fungsi dengan argumen variabel: parameter 'parameter_number'
Peringatan kompilator (tingkat 1) C4026 fungsi dideklarasikan dengan daftar parameter formal
Peringatan kompilator (tingkat 1) C4027 fungsi dideklarasikan tanpa daftar parameter formal
Peringatan kompilator (tingkat 1) C4028 parameter formal parameter_number berbeda dari deklarasi
Peringatan kompilator (tingkat 1) C4029 daftar parameter formal yang dinyatakan berbeda dari definisi
Peringatan kompilator (tingkat 1) C4030 daftar parameter formal pertama lebih panjang dari daftar kedua
Peringatan kompilator (tingkat 1) C4031 daftar parameter formal kedua lebih panjang dari daftar pertama
Peringatan kompilator (tingkat 4) C4032 parameter formal parameter_number memiliki jenis yang berbeda saat dipromosikan
Peringatan kompilator (tingkat 1) C4033 'function' harus mengembalikan nilai
Peringatan kompilator (tingkat 1) C4034 sizeof mengembalikan 0
Peringatan kompilator (tingkat 3) C4035 'function': no return value
Peringatan kompilator (tingkat 1) C4036 'jenis' yang tidak disebutkan namanya sebagai parameter aktual
Peringatan kompilator (tingkat 1) C4038 'pengubah': pengubah kelas ilegal
Peringatan kompilator (tingkat 1) C4041 batas kompilator: mengakhiri output browser
Peringatan kompilator (tingkat 1) C4042 'pengidentifikasi': memiliki kelas penyimpanan yang buruk
Peringatan kompilator (tingkat 1) C4045 'array': luapan batas array
Peringatan kompilator (tingkat 1) C4047 'operator': 'identifier1' berbeda dalam tingkat tidak langsung dari 'identifier2'
Peringatan kompilator (tingkat 1) C4048 subskrip array yang berbeda: 'pengidentifikasi1' dan 'pengidentifikasi2'
Peringatan kompilator (tingkat 1) C4049 batas kompilator: mengakhiri emisi nomor baris
Peringatan kompilator (tingkat 1) C4051 konversi jenis; kemungkinan hilangnya data
Peringatan kompilator (tingkat 1 dan tingkat 4) C4052 deklarasi fungsi berbeda; satu berisi argumen variabel
Peringatan kompilator (tingkat 4) C4053 satu operand batal untuk '?:'
Peringatan kompilator (tingkat 1) C4055 'konversi' : dari penunjuk data 'type1' ke penunjuk fungsi 'type2'
Peringatan kompilator (tingkat 2) C4056 luapan dalam aritmatika konstanta floating-point
Peringatan kompilator (tingkat 4) C4057 'operator': 'identifier1' berbeda secara tidak langsung dengan jenis dasar yang sedikit berbeda dari 'pengidentifikasi2'
Peringatan kompilator (tingkat 3, nonaktif) C4060 pernyataan switch tidak berisi label 'case' atau 'default'
Peringatan kompilator (tingkat 4, nonaktif) C4061 enumerator 'pengidentifikasi' dalam pengalihan enum 'enumerasi' tidak ditangani secara eksplisit oleh case label
Peringatan kompilator (tingkat 4, nonaktif) C4062 enumerator 'pengidentifikasi' dalam pengalihan enum 'enumerasi' tidak ditangani
Peringatan kompilator (tingkat 4) C4063 kasus 'pengidentifikasi' bukan nilai yang valid untuk peralihan enum 'enumerasi'
Peringatan kompilator (tingkat 4) C4064 sakelar 'enumerasi' yang tidak lengkap enum
Peringatan kompilator (tingkat 3, nonaktif) C4065 pernyataan switch berisi 'default' tetapi tidak ada label 'case'
Peringatan kompilator (tingkat 3) C4066 karakter di luar terlebih dahulu dalam konstanta karakter lebar diabaikan
Peringatan kompilator (tingkat 1) C4067 token tak terduga setelah direktif praprosesor - mengharapkan baris baru
Peringatan kompilator (tingkat 1) C4068 pragma tidak diketahui 'pengidentifikasi'
Peringatan kompilator C4069 ganda panjang adalah presisi yang sama dengan ganda
Peringatan kompilator (tingkat 3) C4073 penginisialisasi dimasukkan ke dalam area inisialisasi pustaka
Peringatan kompilator (tingkat 1) C4074 penginisialisasi dimasukkan ke dalam area inisialisasi yang dipesan kompilator
Peringatan kompilator (tingkat 1) C4075 inisialisasi dimasukkan ke dalam area inisialisasi yang tidak dikenal
Peringatan kompilator (tingkat 1) C4076 'type_modifier': tidak dapat digunakan dengan jenis 'typename'
Peringatan kompilator (tingkat 1) C4077 opsi check_stack tidak diketahui
Peringatan kompilator (tingkat 1) C4079 token tak terduga 'token'
Peringatan kompilator (tingkat 1) C4080 pengidentifikasi yang diharapkan untuk nama segmen; ditemukan 'simbol'
Peringatan kompilator (tingkat 1) C4081 diharapkan 'token1'; ditemukan 'token2'
Peringatan kompilator (tingkat 1) C4083 diharapkan 'token'; ditemukan pengidentifikasi 'pengidentifikasi'
Peringatan kompilator (tingkat 1) C4085 parameter pragma yang diharapkan menjadi 'on' atau 'off'
Peringatan kompilator (tingkat 1) C4086 diharapkan parameter pragma menjadi '1', '2', '4', '8', atau '16'
Peringatan kompilator (tingkat 1) C4087 'function': dideklarasikan dengan daftar parameter 'void'
Peringatan kompilator (tingkat 1) C4088 'function': ketidakcocokan pointer dalam parameter aktual 'parameter_number', parameter formal 'parameter_number'
Peringatan kompilator (tingkat 1) C4089 'function': berbagai jenis dalam parameter aktual 'parameter_number', parameter formal 'parameter_number'
Peringatan kompilator (tingkat 1) C4090 'operation': kualifikasi 'pengubah' yang berbeda
Peringatan kompilator (tingkat 1 dan tingkat 2) C4091 'kata kunci': diabaikan di sebelah kiri 'type' ketika tidak ada variabel yang dideklarasikan
Peringatan kompilator (tingkat 4) C4092 sizeof mengembalikan 'unsigned long'
Peringatan kompilator (tingkat 2) C4094 'token' yang tidak diberi tag dinyatakan tidak ada simbol
Peringatan kompilator (tingkat 1) C4096 'pengidentifikasi': antarmuka bukan antarmuka COM; tidak akan dipancarkan ke IDL
Peringatan kompilator (tingkat 1) C4097 parameter pragma yang diharapkan menjadi 'restore' atau 'off'
Peringatan kompilator (tingkat 1) C4098 'function': 'void' function menampilkan nilai
Peringatan kompilator (tingkat 2) C4099 'pengidentifikasi': ketik nama pertama yang terlihat menggunakan 'object_type1' sekarang terlihat menggunakan 'object_type2'
Peringatan kompilator (tingkat 4) C4100 'pengidentifikasi': parameter formal yang tidak direferensikan
Peringatan kompilator (tingkat 3 dan tingkat 4) C4101 'pengidentifikasi': variabel lokal yang tidak direferensikan
Peringatan kompilator (tingkat 3) C4102 'label': label tidak direferensikan
Peringatan kompilator (tingkat 1) C4103 perataan diubah setelah menyertakan header, mungkin karena hilang #pragma pack(pop)
Peringatan kompilator (tingkat 1) C4109 pengidentifikasi 'pengidentifikasi' tak terduga
Peringatan kompilator (tingkat 1 dan tingkat 4) C4112 #line membutuhkan bilangan bulat antara 1 dan 'line_count'
Peringatan kompilator (tingkat 1) C4113 'pengidentifikasi1' berbeda dalam daftar parameter dari 'pengidentifikasi2'
Peringatan kompilator (tingkat 1) C4114 kualifikasi jenis yang sama digunakan lebih dari sekali
Peringatan kompilator (tingkat 1 dan tingkat 4) C4115 'type': definisi jenis bernama dalam tanda kurung
Peringatan kompilator (tingkat 1) C4116 definisi jenis yang tidak disebutkan namanya dalam tanda kurung
Peringatan kompilator (tingkat 1) C4117 nama makro 'nama' dicadangkan, 'perintah' diabaikan
Peringatan kompilator (tingkat 1) C4119 basis yang berbeda 'base1' dan 'base2' ditentukan
Peringatan kompilator (tingkat 1) C4120 ketidakcocokan berbasis/tidak berbasing
Peringatan kompilator (tingkat 4) C4121 'simbol': perataan anggota sensitif terhadap pengemasan
Peringatan kompilator (tingkat 1) C4122 'function': alloc_text hanya berlaku untuk fungsi dengan linkage C
Peringatan kompilator (tingkat 1) C4123 ekspresi dasar berbeda yang ditentukan
Peringatan kompilator (tingkat 1) C4124 __fastcall dengan pemeriksaan tumpukan tidak efisien
Peringatan kompilator (tingkat 4) C4125 digit desimal mengakhiri urutan escape oktal
Peringatan kompilator (tingkat 4) C4127 ekspresi kondisi adalah konstanta
Peringatan kompilator (tingkat 1) C4129 'karakter': urutan escape karakter yang tidak dikenal
Peringatan kompilator (tingkat 4) C4130 'operator': operasi logis pada alamat konstanta string
Peringatan kompilator (tingkat 4) C4131 'function': menggunakan deklarator gaya lama
Peringatan kompilator (tingkat 4) C4132 'objek': const objek harus diinisialisasi
Peringatan kompilator (tingkat 1 dan tingkat 3) C4133 'expression': tipe yang tidak kompatibel - dari 'type1' hingga 'type2'
Peringatan kompilator C4137 'function': no return value from floating-point function
Peringatan kompilator (tingkat 1) C4138 '*/' ditemukan di luar komentar
Peringatan kompilator (tingkat 1, Kesalahan) C4141 'pengubah': digunakan lebih dari sekali
Peringatan kompilator (tingkat 1) C4142 'pengidentifikasi': pendefinisian ulang jenis jinak
Peringatan kompilator (tingkat 1) C4143 pragma 'same_seg' tidak didukung; gunakan __based alokasi
Peringatan kompilator (tingkat 1) C4144 'ekspresi': ekspresi relasional sebagai ekspresi pengalihan
Peringatan kompilator (tingkat 1) C4145 'expression1': ekspresi relasional sebagai ekspresi pengalihan; kemungkinan kebingungan dengan 'ekspresi2'
Peringatan kompilator (tingkat 2) C4146 operator minus unary diterapkan ke jenis yang tidak ditandatangani, hasilnya masih tidak ditandatangani
Peringatan kompilator (tingkat 2) C4150 penghapusan pointer ke jenis 'type' yang tidak lengkap; tidak ada destruktor yang disebut
Peringatan kompilator (tingkat 4) C4152 ekstensi nonstandar, konversi penunjuk fungsi/data dalam ekspresi
Peringatan kompilator (tingkat 1) C4153 konversi penunjuk fungsi/data dalam ekspresi
Peringatan kompilator (tingkat 1) C4154 penghapusan ekspresi array; konversi ke pointer yang disediakan
Peringatan kompilator (tingkat 1) C4155 penghapusan ekspresi array tanpa menggunakan bentuk array 'delete'
Peringatan kompilator (tingkat 2) C4156 penghapusan ekspresi array tanpa menggunakan bentuk array 'delete'; formulir array diganti
Peringatan kompilator (tingkat 1) C4157 pragma diabaikan oleh pengkompilasi C
Peringatan kompilator (tingkat 1) C4158 dengan asumsi #pragma pointers_to_members(full_generality, 'inheritance_type')
Peringatan kompilator (tingkat 3) C4159 #pragma 'pragma'(pop,...): telah muncul sebelumnya mendorong pengidentifikasi 'pengidentifikasi'
Peringatan kompilator (tingkat 1) C4160 #pragma 'pragma'(pop,...): tidak menemukan pengidentifikasi 'pengidentifikasi' yang didorong sebelumnya
Peringatan kompilator (tingkat 3) C4161 #pragma 'pragma'(pop...): lebih banyak pops daripada push
Peringatan kompilator (tingkat 1) C4162 'pengidentifikasi': tidak ada fungsi dengan linkage C yang ditemukan
Peringatan kompilator (tingkat 1) C4163 'pengidentifikasi': tidak tersedia sebagai fungsi intrinsik
Peringatan kompilator (tingkat 1) C4164 'function': fungsi intrinsik tidak dideklarasikan
Peringatan kompilator (tingkat 3, nonaktif) C4165 'HRESULT' sedang dikonversi menjadi 'bool'; apakah Anda yakin ini yang Anda inginkan?
Peringatan kompilator (tingkat 1) C4166 konvensi panggilan ilegal untuk konstruktor/destruktor
Peringatan kompilator (tingkat 1) C4167 'function': hanya tersedia sebagai fungsi intrinsik
Peringatan kompilator (tingkat 1) C4168 batas kompilator: di luar jenis debugger, hapus database program 'database' dan bangun ulang
Peringatan kompilator (tingkat 1) C4172 mengembalikan alamat variabel lokal atau optional_context sementara
Peringatan kompilator (tingkat 1) C4174 'name': tidak tersedia sebagai #pragma component
Peringatan kompilator (tingkat 1) C4175 #pragma component(browser, on): info browser awalnya harus ditentukan pada baris perintah
Peringatan kompilator (tingkat 1) C4176 'subkomponen': subkomponen yang tidak diketahui untuk #pragma component browser
Peringatan kompilator (tingkat 1) C4177 #pragma 'pragma' hanya boleh digunakan pada cakupan global atau cakupan namespace layanan
Peringatan kompilator (tingkat 1) C4178 case konstanta 'konstanta' terlalu besar untuk jenis ekspresi pengalihan
Peringatan kompilator (tingkat 4, tidak lagi dipancarkan) C4179 '//*': diurai sebagai '/' dan '/\*': kebingungan dengan komentar '//' standar
Peringatan kompilator (tingkat 1) C4180 kualifikasi yang diterapkan ke jenis fungsi tidak memiliki arti; Diabaikan
Peringatan kompilator C4181 kualifikasi diterapkan ke jenis referensi; Diabaikan
Peringatan kompilator (tingkat 1) C4182 #include tingkat berlapis nest_count dalam; kemungkinan rekursi tak terbatas
Peringatan kompilator (tingkat 1) C4183 'pengidentifikasi': jenis pengembalian hilang; diasumsikan sebagai fungsi anggota yang mengembalikan 'int'
Peringatan kompilator (tingkat 1) C4185 mengabaikan atribut 'atribut' yang tidak diketahui #import
Peringatan kompilator (tingkat 1) C4186 #atribut impor 'atribut' memerlukan argumen 'argument_count'; diabaikan
Peringatan kompilator (tingkat 1) C4187 #import atribut 'attribute1' dan 'attribute2' tidak kompatibel; keduanya diabaikan
Peringatan kompilator (tingkat 1) C4188 ekspresi konstanta tidak integral
Peringatan kompilator (tingkat 3 dan tingkat 4) C4189 'pengidentifikasi': variabel lokal diinisialisasi tetapi tidak dirujuk
Peringatan kompilator (tingkat 1) C4190 'identifier1' memiliki C-linkage yang ditentukan, tetapi mengembalikan UDT 'identifier2' yang tidak kompatibel dengan C
Peringatan kompilator (tingkat 3, nonaktif) C4191 'operation': konversi tidak aman dari 'type_of_expression' ke 'type_required'
Melakukan panggilan fungsi menggunakan penunjuk yang dihasilkan dapat menyebabkan program Anda gagal
Peringatan kompilator (tingkat 3) C4192 secara otomatis mengecualikan 'pengidentifikasi' saat mengimpor pustaka jenis 'pustaka'
Peringatan kompilator (tingkat 3) C4193 #pragma warning(pop): tidak ada pencocokan '#pragma warning(push)'
Peringatan kompilator (tingkat 1) C4194 #pragma start_map_region tidak dapat ditumpuk; Diabaikan
Peringatan kompilator (tingkat 1) C4195 #pragma stop_map_region digunakan tanpa pencocokan #pragma start_map_region; diabaikan
Peringatan kompilator (tingkat 1) C4196 diharapkan 'token1' atau 'token2'; ditemukan 'token3'
Peringatan kompilator (tingkat 3) C4197 'type': tingkat atas volatile dalam cast diabaikan
Peringatan kompilator (tingkat 1, tingkat 2, tingkat 3, dan tingkat 4) C4199 message

Lihat juga

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