Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 2 a úroveň 4) C4200

Nepoužité rozšíření: pole s nulovou velikostí ve struktuře/sjednocení

Pouze jazyk C++:

Tento člen bude ignorován ve výchozím konstruktoru nebo operátoru přiřazení copy/move.

Toto upozornění označuje, že struktura nebo sjednocení obsahují pole, které má nulovou velikost. Deklarace pole s nulovou velikostí je nestandardní rozšíření kompilátoru. To způsobí upozornění úrovně 2 při kompilaci souboru C++ a upozornění úrovně 4 při kompilaci souboru C. Tento příklad vygeneruje upozornění C4200:

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

Toto nestandardní rozšíření se často používá k rozhraní kódu s externími datovými strukturami, které mají proměnnou délku. Pokud se tento scénář vztahuje na váš kód, můžete upozornění zakázat:

Příklad

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