컴파일러 경고(수준 1) C4742
'variable'은 'file1' 및 'file2'에서 서로 다른 맞춤을 가름: number1 및 number2
두 파일에서 참조되거나 정의된 외부 변수는 해당 파일에서 서로 다른 맞춤을 가합니다.
설명
이 경고는 컴파일러가 file1의 변수가 file2의 변수와 다르다는 alignof
것을 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;
}