Compilerwarnung (Stufe 1) C4742

'var' hat eine unterschiedliche Ausrichtung in 'Datei1' und 'Datei2': Zahl und Zahl

Eine externe Variable, die in zwei Dateien referenziert oder definiert wurde, verfügt über verschiedene Ausrichtungen in diesen Dateien. Diese Warnmeldung wird ausgegeben, wenn der Compiler erkennt, dass sich __alignof für die Variable in file1 von __alignof für die Variable in file2 unterscheidet. Ursache dafür kann die Verwendung nicht kompatibler Typen beim Deklarieren von Variablen in verschiedenen Dateien oder die Verwendung des nicht übereinstimmenden #pragma pack in verschiedenen Dateien sein.

Zur Behebung des Problems verwenden Sie entweder die gleiche Typdefinition oder unterschiedliche Namen für die Variablen.

Weitere Informationen finden Sie unter pack und __alignof Operator.

Beispiel

Dies ist die erste Datei, die den Typ definiert.

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

Im folgenden Beispiel wird C4742 generiert.

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

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