다음을 통해 공유


컴파일러 경고(수준 4) C4366

단항 'operator' 연산자의 결과가 정렬되지 않을 수 있습니다.

압축으로 인해 구조체 멤버가 정렬되지 않은 경우 컴파일러는 해당 멤버의 주소가 정렬된 포인터에 할당될 때 경고합니다. 기본적으로 모든 포인터가 정렬됩니다.

C4366을 해결하려면 구조체의 맞춤을 변경하거나 __unaligned 키워드를 사용하여 포인터를 선언합니다.

자세한 내용은 __unaligned 및 을 참조하세요.

예시

다음 샘플에서는 C4366을 생성합니다.

// C4366.cpp
// compile with: /W4 /c
// processor: IPF x64
#pragma pack(1)
struct X {
   short s1;
   int s2;
};

int main() {
   X x;
   short * ps1 = &x.s1;   // OK
   int * ps2 = &x.s2;   // C4366
}