編譯器警告 (層級 1) C4742
'variable' 在 'file1' 和 'file2' 中有不同的對齊方式:number1 和 number2
在兩個檔案中參考或定義的外部變數在這些檔案中有不同的對齊方式。
備註
當編譯程序發現 alignof
file1 中變數的 變數與 file2 中的變數不同alignof
時,就會發出這個警告。 當宣告不同檔案中的變數,或在不同檔案中使用非比 #pragma pack
對時,可能會使用不相容的類型。
若要解決此警告,請使用相同的類型定義,或針對變數使用不同的名稱。
如需詳細資訊,請參閱 pack
和 alignof
運算符。
範例
這是定義類型的第一個檔案。
// C4742a.c
// compile with: /c
struct X {
char x, y, z, w;
} global;
下列範例會產生 C4742。
// C4742b.c
// compile with: C4742a.c /W1 /GL
// C4742 expected
extern struct X {
int a;
} global;
int main() {
global.a = 0;
}