Freigeben über


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;
}