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;

}

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注