void testUnion(){
union {
unsigned char c[4];
unsigned long l;
}Time = {0,0,0,0};
Time.l = 0x12345678;
printf("%02x %02x %02x %02x", Time.c[0], Time.c[1], Time.c[2], Time.c[3]);
printf("\n");
}
// 嵌套struct实现自动分离,如可以实现从文件中读入的数据实现自动分离
void testUnionStruct() {
union {
unsigned char d[8];
struct _t {
struct _t1 {
short year;
unsigned char month;
unsigned char day;
}T1;
struct _t2 {
short year;
unsigned char month;
unsigned char day;
}T2;
}T;
}Date ={0xdb,0x07,0x0b,0x18,0xdb,0x07,0x0c,0x1e};
printf("T1:%04x-%02x-%02x T2:%04x-%02x-%02x", Date.T.T1.year, Date.T.T1.month, Date.T.T1.day,
Date.T.T2.year,Date.T.T2.month,Date.T.T2.day);
}
int main()
{
testUnion();
testUnionStruct();
//std::cout << "Hello World!\n";
}