C语言 union 大小端 例子 解释

来源:互联网 发布:分布式计算有哪些算法 编辑:程序博客网 时间:2024/06/11 19:49

关于union 以及 大小端总结了几篇文章里的内容。以下内容整理自

http://blog.csdn.net/it1988888/article/details/7765997

http://blog.csdn.net/it1988888/article/details/8871195

两篇博文里的内容没有发现什么错误,内容比较详细。有例子也有故事



英文翻译:字节序(Endian),大端(Big-Endian),小端(Little-Endian)

图片说明大小端

代码判断大、小端:

   int checkCPUendian(){
        union {
             unsigned int a;
             unsigned char b;            
        }c;
        c.a = 1;
        return (c.b == 1);       
   }   /*return 1 : little-endian, return 0:big-endian*/


我运行的程序例子(x86):

#include <stdio.h>
union X{
int x;
char y[4];
};
int main(int argc,char *argv[]){
int i;
union X T;
T.x=0x11223344; //16进制
for(i=0;i<4;i++)
printf("%02x\n",T.y[i]);
return 0;
}
输出:44 33 22 11

0 0
原创粉丝点击