Upozornění kompilátoru (úroveň 1) C4742
Proměnná má jiné zarovnání v souboru 1 a file2: číslo1 a číslo2.
Externí proměnná odkazovaná nebo definovaná ve dvou souborech má v těchto souborech jiné zarovnání.
Poznámky
Toto upozornění se vygeneruje, když kompilátor zjistí, že alignof
pro proměnnou v souboru1 se liší od alignof
proměnné v souboru2. Příčinou může být použití nekompatibilních typů při deklarování proměnné v různých souborech nebo použití nekompatibilních #pragma pack
souborů v různých souborech.
Pokud chcete toto upozornění vyřešit, použijte buď stejnou definici typu, nebo použijte jiné názvy proměnných.
Další informace najdete v tématu pack
a alignof
operátoru.
Příklad
Toto je první soubor, který definuje typ.
// C4742a.c
// compile with: /c
struct X {
char x, y, z, w;
} global;
Následující ukázka vygeneruje C4742.
// C4742b.c
// compile with: C4742a.c /W1 /GL
// C4742 expected
extern struct X {
int a;
} global;
int main() {
global.a = 0;
}