Freigeben über


Compilerwarnung (Ebene 2 und Ebene 4) C4200

nicht dem Standard entsprechende Erweiterung: Null-Array in Struktur/Union

Nur C++:

Dieser Member wird vom Standardkonstruktor oder Zuweisungsoperator für Kopieren/Verschieben ignoriert

Bemerkungen

Diese Warnung gibt an, dass eine Struktur oder Vereinigung ein Array mit Größe Null enthält. Die Deklaration eines Arrays der Größe 0 (null) ist eine nicht standardmäßige Compilererweiterung. Dadurch wird eine Warnung der Stufe 2 bei der Kompilierung einer C++-Datei und eine Warnung der Stufe 4 kompiliert, wenn C-Datei kompiliert wird.

Beispiel

In diesem Beispiel wird die Warnung C4200 generiert:

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

Diese nicht standardmäßige Erweiterung wird häufig zum Verknüpfen von Code mit externen Datenstrukturen verwendet, die eine variable Länge haben. Wenn dieses Szenario für Ihren Code gilt, können Sie die Warnung deaktivieren:

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