Compartir a través de


Advertencia del compilador (nivel 1) C4742

'variable' tiene una alineación diferente en 'file1' y 'file2': number1 y number2

Una variable externa a la que se hizo referencia o se definió en dos archivos tiene una alineación diferente en esos archivos.

Comentarios

Esta advertencia se genera cuando el compilador encuentra que alignof para la variable de file1 difiere de alignof para la variable en file2. Esto puede deberse al uso de tipos incompatibles al declarar la variable en archivos diferentes o al uso de #pragma pack no coincidentes en archivos diferentes.

Para resolver esta advertencia, use la misma definición de tipo o use nombres diferentes para las variables.

Para más información, consulte los artículos sobre pack y el operadoralignof.

Ejemplo

Este es el primer archivo que define el tipo.

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

El ejemplo siguiente genera la advertencia C4742.

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

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