67、讲讲大端小端,如何检测
int a = 0x12345678;
int *c = &a;
c[0] == 0x12 ⼤端模式
c[0] == 0x78 ⼩段模式#include<stdio.h>
int main() {
union {
int a; //4 bytes
char b; //1 byte
} data; 1//占4 bytes,⼗六进制可表示为 0x 00 00 00 01
//b因为是char型只占1Byte,a因为是int型占4Byte
//所以,在联合体data所占内存中,b所占内存等于a所占内存的低地址部分
if(1 == data.b) {
//⾛到这⾥意味着说明a的低字节,被取给到了b
//即a的低字节存在了联合体所占内存的(起始)低地址,符合⼩端模式特
printf("Little_Endian\n");
} else {
printf("Big_Endian\n");
}
return 0;
}Last updated