Compiler Warning (Level 1) C4742
'var' has different alignment in 'file1' and 'file2': number and number
An external variable that was referenced or defined in two files has different alignment in those files. This warning is emitted when compiler finds that __alignof for the variable in file1 differs from __alignof for the variable in file2. This can be caused by using incompatible types when declaring variable in different files, or by using non-matching #pragma pack in different files.
To resolve this warning, either use the same type definition or use different names for the variables.
For more information, see pack and __alignof Operator.
Example
This is the first file that defines the type.
// C4742a.c
// compile with: /c
struct X {
char x, y, z, w;
} global;
The following sample generates C4742.
// C4742b.c
// compile with: C4742a.c /W1 /GL
// C4742 expected
extern struct X {
int a;
} global;
int main() {
global.a = 0;
}