Condividi tramite


Avviso del compilatore (livello 2 e livello 4) C4200

estensione non standard usata: matrice con dimensioni zero in struct/union

Solo C++:

Questo membro verrà ignorato da un costruttore predefinito o da un operatore di assegnazione di copia/spostamento

Questo avviso indica che una struttura o un'unione contiene una matrice con dimensioni pari a zero. La dichiarazione di una matrice di dimensioni zero è un'estensione del compilatore non standard. L'avviso è di livello 2 quando viene compilato un file C++ e di livello 4 quando viene compilato un file C. Questo esempio genera l'avviso C4200:

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

Questa estensione non standard viene spesso usata per interfacciare il codice con strutture di dati esterne con lunghezza variabile. Se questo scenario si applica al codice, è possibile disabilitare l'avviso:

Esempio

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