首页 >
C >
结构体,联合体,枚举
阅读:57,774
Union的应用:判断系统是低位优先还是高位优先
如何判断一个平台是低位优先存储还是高位优先存储(整数的存储见第2.5节)?
定义一个联合体,让char类型和int类型共享同一段内存空间,那么char类型的成员恰好就是整数的最低字节。
typedef union
{
char c;
int a;
} U;
而对于整数0x1存放在4个字节的空间中的时候,在低位优先系统中,最低地址的那一个字节的值为1,在高位优先系统中,最低地址的那一个子集的值为0。因此,有了下面的判断代码:
int is_integer_lower_store()
{
U u;
u.a = 1;
return u.c;
}