首页 > 代码库 > 大端小端(2)

大端小端(2)

请问下列代码的输出结果有可能是哪些()?

#include<stdint.h>
#include<stdio.h>
union X{    
        int32_t a;    
        struct     
        {       
                int16_t b;        
                int16_t c;    
        };
};
int main()
{ 
         X x;    
         x.a=0x20150810;    
         printf("%x,%x\n",x.b,x.c);   
         return 0;
}

错误解: 大端:1008 1520   小端:2015 0810

错误原因:弄清楚了大端和小端在内存的存储情况,但是在输出的时候却没有考虑到大端小端的存储特点。。(注意结构体中为两个 16bit  的元素)

正确解: 大端:0810 2015   小端:2015  0810

大端小端(2)