次の方法で共有


コンパイラの警告 (レベル 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];
};