大端与小端:
小端:字节的低位放在内存低位地址,高位放在内存高位地址。
大端:字节的高位地址放在内存低位地址,低位放在内存高位地址。
判断系统是大端还是小端?
若判断处理器是Big还是Little模式,有两种方法。
1、
int i=1;
char *p=(char *)&i;
if(*p==1)
printf("小端");
else
printf("大端");
大小端存储问题,如果小端方式(i占至少两个字节的长度)则i所分配的内存最小地址那个字节中就存着1,其他字节是0.大端的话则1在i的最高地址字节处存放,char是一个字节,所以强制将char型量p指向i则p指向的一定是i的最低地址,那么就可以判断p中的值是不是1来确定是不是小端
字节对齐:
结构体的对齐参
1.Union
#include<stdio.h>
typedef union
{
char c[10];
char cc1;
}u11;//首先按照char c[10]分配10个字节,然后按照char的1个字节对齐,最终