共用方式為


編譯器警告 (層級 2 和層級 4) C4200

已使用非標準延伸模組:結構/集合聯集中大小為零的陣列

僅限 C++:

預設的建構函式或複製/移動指派運算子會忽略此成員

備註

這個警告表示結構或集合聯集包含大小為零的陣列。 大小為零之陣列的宣告是非標準編譯器延伸模組。 這會導致編譯 C++ 檔案時出現層級 2 警告以及編譯 C 檔案時出現層級 4 警告。

範例

本範例會產生警告 C4200:

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

這個非標準延伸模組通常用於將程式碼與具有可變長度的外部資料結構連接起來。 如果這種情況適用於您的程式碼,您可以停用這項警告:

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