Bagikan melalui


Compiler Warning (level 2 dan level 4) C4200

ekstensi nonstandar yang digunakan: array berukuran nol dalam struct/union

Hanya C++:

Anggota ini akan diabaikan oleh konstruktor default atau operator penetapan salin/pindah

Peringatan ini menunjukkan bahwa struktur atau union berisi array yang memiliki ukuran nol. Deklarasi array berukuran nol adalah ekstensi kompilator nonstandar. Ini menyebabkan peringatan Tingkat-2 ketika file C++ dikompilasi dan peringatan Tingkat-4 saat file C dikompilasi. Contoh ini menghasilkan peringatan C4200:

// C4200.cpp
// compile by using: cl /W4 c4200.cpp
struct A {
    int len;
    int a[0];  // C4200
};

Ekstensi nonstandar ini sering digunakan untuk antarmuka kode dengan struktur data eksternal yang memiliki panjang variabel. Jika skenario ini berlaku untuk kode Anda, Anda dapat menonaktifkan peringatan:

Contoh

// C4200b.cpp
// compile by using: cl /W4 c4200a.cpp
#pragma warning(disable : 4200)
struct A {
    int len;
    int a[0];
};