I 다음 타입 정의를 가지고C++ : union -> 구조체, 설명?
typedef union{
unsigned int Entry;
struct {
unsigned char EntryType;
unsigned char EntryOffset[3];
};
} TLineDescriptor;
I과 같은 형태의 다음 사용을 가지고
TLineDescriptor LineDescriptor;
LineDescriptor.Entry = 40;
LineDescriptor.EntryType = 0x81;
sizeof(LineDescriptor)
이 변수가 처음 나는 것으로 메모리의 4 바이트를 차지하는 것을 보여준다 그것은 int 또는 struct 중 하나를 보유합니다.
cout << LineDescriptor.Entry << " " << LineDescriptor.EntryType << endl;
그러나 인쇄 개의 상이한 값, 즉 129 ü
, LineDescriptor.Entry
상기 광고 명백하게를 0x81 값이 저장된 메모리 위치를 참조한다. 나는 40과 무슨 일이 일어 났는지는 잘 모르겠다. 그러나 내 가정이 틀렸다는 것은 분명하다. 누군가 해석하고 유형 정의를 적절하게 설명 할 수 있습니까? 내가 찾은 코드로 작업하는 것이 중요합니다.
미리 감사드립니다. 이 방법으로
실험 해 주셔서 감사 드리며 내부 동작을 훨씬 명확하게 보여줍니다. –