实例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;
}