Partilhar via


Aviso do compilador (nível 1) C4742

'variable' tem alinhamento diferente in 'file1' e 'file2': number1 e number2

Uma variável externa referenciada ou definida em dois arquivos tem alinhamentos diferentes nesses arquivos.

Comentários

Esse aviso é emitido quando o compilador descobre que alignof para a variável no file1 é diferente de alignof para a variável no file2. Isso pode ser causado pelo uso de tipos incompatíveis ao declarar variável em arquivos diferentes ou pelo uso de #pragma pack não correspondentes em arquivos diferentes.

Para resolver esse aviso, use a mesma definição de tipo ou use nomes diferentes para as variáveis.

Para mais informações, consulte pack e alignof operador.

Exemplo

Este é o primeiro arquivo que define o tipo.

// C4742a.c
// compile with: /c
struct X {
   char x, y, z, w;
} global;

A seguinte amostra gera C4742.

// C4742b.c
// compile with: C4742a.c /W1 /GL
// C4742 expected
extern struct X {
   int a;
} global;

int main() {
   global.a = 0;
}