简单的代码实现大小端的判断
大小端模式这个不用说了,C面试题或者考官也会经常问到。打比方说,0x1278这个数据存在内存中。在小端模式下,数据的低字节 78 存在内存的低地址中,而高字节 12 存在内存的高地址中。而大端模式刚好反过来。
有时候面试题会出些写个代码来判断当前的机器是啥模式?我看到不少的别人写的代码,有些会让人不太好理解,特别是假如刚入门的。下面是我着手写的一个,这种形式反而更加容易理解些:
int main()
{
unsigned short int aa=0x0102; //short int 是两个字节,这样的话01 和 02分别占用一个字节
unsigned char ch; //char 类型只占一个字节
ch=*(&aa); //&aa就是取这个变量的首地址,然后再将这个首地址的内容赋给ch
ch=ch+'a'; //因为 字符和int类型有数值上的差异,得加上个'a',这个随便自己定义
if('c'==ch) //如果是小端模式,低地址存放的是低字节(02),那么这里就是字符'a'加上 02 ,对应的就是 'c'
{
printf("small \n");
}
else
{
printf("big \n");
}
return 0;
}

浙公网安备 33010602011771号