Compilerwarnung (Ebene 1) C4742
'Variable' weist unterschiedliche Ausrichtung in 'file1' und 'file2' auf: Zahl1 und Zahl2
Eine externe Variable, auf die in zwei Dateien verwiesen oder definiert wurde, weist unterschiedliche Ausrichtungen in diesen Dateien auf.
Hinweise
Diese Warnung wird ausgegeben, wenn der Compiler findet, dass alignof
sich für die Variable in File1 von alignof
der Variablen in Datei2 unterscheidet. Dies kann durch Die Verwendung inkompatibler Typen beim Deklarieren von Variablen in verschiedenen Dateien oder durch Verwenden eines Nichtabgleichs #pragma pack
in verschiedenen Dateien verursacht werden.
Um diese Warnung zu beheben, verwenden Sie entweder dieselbe Typdefinition, oder verwenden Sie 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;
}