|
안녕하세요 만해입니다.
typedef union DataWord__u {
struct {
unsigned char Hi;
unsigned char Lo;
} Nibble;
unsigned char Data[2];
short int IData;
} DataWord_u;
#pragma pack(pop)
typedef union DataFWord__u{
struct {
DataWord_u Hi;
DataWord_u Lo;
}Word;
unsigned char Data[4];
int IData;
} DataFWord_u;
이렇게 정의되어 있는 상태에서요
DataFWord_U AWord;
FWord.Word.Hi.Nibble.Hi = 'a';
FWord.Word.Hi.Nibble.Lo = 'b';
FWord.Word.Lo.Nibble.Hi = 'c';
FWord.Word.Lo.Nibble.Lo = 'd';
이렇게 입력을 하고 난 후에
FWord.Data를 확인해 보면 'abcd0x40' 이런식으로
제가 원하는 값이 아닌 쓰레기 값이 있는 경우가 종종 생기는데요
이게 왜 이런지 모르겠네요
혹시나 해서
unsigned char 형으로 정의 된걸 싹다 char 형으로 바꿔 보기도 했는데 왜 이러는지 모르곘네요
고수님들의 도움 바랍니다.
|