Aviso do Compilador (nível 2 e nível 4) C4200
extensão não padrão usada: matriz de tamanho zero no struct/união
Somente C++:
Este membro será ignorado por um construtor padrão ou operador de atribuição de cópia/movimentação
Esse aviso indica que uma estrutura ou união contém uma matriz com tamanho zero. A declaração de uma matriz de tamanho zero é uma extensão não padrão do compilador. Isso causa um aviso de nível 2 quando um arquivo C++ é compilado e um aviso de nível 4 quando um arquivo C é compilado. Este exemplo gera um aviso C4200:
// C4200.cpp
// compile by using: cl /W4 c4200.cpp
struct A {
int len;
int a[0]; // C4200
};
Essa extensão não padrão é frequentemente utilizada para fazer a interface do código com estruturas de dados externas que têm um comprimento variável. Se esse cenário se aplicar ao seu código, você pode desabilitar o aviso:
Exemplo
// C4200b.cpp
// compile by using: cl /W4 c4200a.cpp
#pragma warning(disable : 4200)
struct A {
int len;
int a[0];
};