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];
};