建議使用 Visual Studio 2017

編譯器警告 (層級 1) C4742

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

'var' 有不同的對齊,在 'file1' 和 'file2': 和號碼

參考或兩個檔案中定義的外部變數會有不同的對齊,在這些檔案。 當編譯器發現,就會發出這個警告__alignof中變數的file1不同於__alignof中變數的file2。 這可以使用不相容的類型時宣告變數,在不同的檔案,或使用不相符造成#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;  
}  

顯示: