结构体字节对齐
32位:8+4+4+4=32
32位:1+1+2+2+4+4++4+4=22
两种验证大小端对齐
共用体判断
#include <stdio.h>
union A
{
char t1;
int t2;
};
int main(int argc, const char *argv[])
{
union A a1; //栈区
a1.t2 = 0x12345678; //0x12数据高位 0x78数据低位
printf("%#X\n",a1.t1); //访问共用体中的地址低位
printf("%p\n",&a1.t1);
printf("%p\n",&a1.t1+3);
return 0;
}
指针判断
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a = 0x12345678;
char *p = &a; //为了只取a的低地址的数据
if(*p==0x78)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}