实例1 #include <stdio.h> #include <stdlib.h> int main() { union dt { short s; char c[sizeof(short)]; double d; }data; data.s = 0x0102; if (sizeof(short)==2) { if (data.c[0]==1 && data.c[1]==2) printf("big-endian\n"); // 只记住低位就好 else if (data.c[0]==2 && data.c[1]==1) printf("little-endian\n"); // 低位放地位,高位放高位 else printf("unknow\n"); } else printf("sizeof(short) = %d\n", sizeof(short)); printf("%f\n",data.c); } // 实例2 #include "stdio.h" int main() { union { int i[2];long k;char c[4]; }t,*s=&t; s->i[0] = 0x39; s->i[1] = 0x38; printf("%1x\n",s->k); printf("%c\n",s->c[0]); return 0; }