Partager via


Avertissement du compilateur (niveaux 2 et 4) C4200

extension non standard utilisée : tableau de taille zéro dans une struct/union

C# uniquement :

Ce membre sera ignoré par un constructeur par défaut ou par un opérateur d'assignation de copie/déplacement

Cet avertissement indique qu'une structure ou une union contient un tableau de taille zéro. La déclaration d’un tableau de taille zéro est une extension de compilateur non standard. Cela provoque un avertissement de niveau 2 lors de la compilation d'un fichier C++ et un avertissement de niveau 4 lors de la compilation d'un fichier C. Cet exemple génère l'avertissement C4200 :

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

Cette extension non standard est souvent utilisée pour assurer une interface entre le code et les structures de données externes dotées de longueurs variables. Si ce scénario s'applique à votre code, vous pouvez désactiver l'avertissement :

Exemple

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