大小端是指CPU存储数据的方式。
比如一个0x01020304这个整数,在内存中的布局如下:
[01][02][03][04] 注意左边是低地址,而右边是高地址,此为大端
[04][03][02][01] 注意左边是低地址,而右边是高地址 ,此为小端
通俗的说,和内存布局一致(低位存放在低地址,高位存放在高地址)的就是小端,和内存布局不一致的就是大端。
- #include <stdio.h>
//union的所有成员内存存放顺序是一致的
-
union _un
-
{
-
int a;
-
char c;
-
};
-
-
int
-
main(void)
-
{
-
union _un u;
-
u.a = 1;
-
if (1 == u.c)
-
printf("Little end\n");
-
else
-
printf("Big end\n");
-
-
short int x = 0x1122;
-
char *p = (char *)&x; //只取低地址部分
-
if (*p == 0x22)
-
printf("Little end\n");
-
else
-
printf("Big end\n");
-
-
return (0);
-
}
阅读(1823) | 评论(0) | 转发(0) |