コンパイラの警告 (レベル 2 およびレベル 4) C4200
非標準の拡張機能が使用されています : 構造体または共用体の中にサイズが 0 の配列があります
C++ のみ:
このメンバーは、既定のコンストラクターまたはコピー/移動代入演算子により無視されます
この警告は、構造体または共用体がサイズが 0 の配列が含まれていることを示します。 0 サイズの配列の宣言は、非標準のコンパイラ拡張機能です。 これにより、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];
};