C语言判断大小端

一般PC 和 stm32 之类的单片机都是 小端,这样更符合人类思维。

小端即 高位高 地址,低位低 地址

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     
 6     short int x;
 7     char x1,x2;
 8     x = 0x1234;
 9     
10     /*====================================
11     传统的c风格的强制转换 很危险,要小心对待
12     当然下面两行代码也可以写成
13         x1 = ((char*)&x)[0];
14         x2 = ((char*)&x)[1];
15         ==================================*/
16     
17     x1 = *((char*)&x);
18     x2 = *(((char*)&x)+1);
19     
20     /*小端是,高位保存在内存的高地址中,而数据的低位保存在内存的低地址中*/
21     printf("x1 = %x  addr: %x\n",x1,&((char*)&x)[0]);
22     printf("x2 = %x  addr: %x\n",x2,&((char*)&x)[1]);
23     
24     return 0;
25     
26 }

IDE: C-Free5.0      MinGW

执行结果:

posted on 2014-01-05 16:39  小螺号giao~giao~giao  阅读(363)  评论(0编辑  收藏  举报