70,020
社区成员




union conv{
struct{
char a;
char b;
};
short c;
};
union conv k;
k.a = 0xfe;
k.b = 0xab;
printf("k.c=%d\n",k.c);
char a=0xFE;
char b=0xAB;
short c=0xABFE;
union conv{
struct{
char a;
char b;
};
short c;
};
:char a=0xFE;
char b=0xAB;
short c=0xABFE;
union conv k;
k.a = 0xfe;
k.b = 0xab;
printf("k.c=%d\n",k.c);
char a = 0xFE;
char b = 0xAB;
short c; /* 0xABFE已经超过2^15 = 32768,因此最好加个unsigned */
/* 不必强制转换b和a */
c = (b << 8) | (a & 0xFF);
char a=0xFE;
char b=0xAB;
short c;
c=(((short)b)<<8)|((short)a&0x00FF);//0xABFE
char a=0xFE;
char b=0xAB;
short c;
c=(((short)b)<<8)|((short)a);//0xABFE