试题1:请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则
返回1
Answer:
int checkCPU()
{
{
union w
{
int a;
char b;
} c;
c.a = 1;
return (c.b == 1);
}
}
定义一个union数据结构,里面a和b是使用同一个地址的,int是2Bytes,而b则是1
Byte的,也就是a的低8位(总共16位)。令a=1, 则在big endian机器上,a用16进制
表示为0x01,0x00(低地址), 此时b为它的低8位也就是0x00. little endian反之。
关于2个endian上网去查把。
Big_endian and little_endian
最新推荐文章于 2023-12-29 08:02:59 发布
本文介绍了一个简单的C函数,用于检测处理器的字节序类型。通过定义一个联合体并设置一个整型变量为1,该函数能够判断当前处理器是Big_endian还是Little_endian。Big_endian处理器上该函数将返回0,而在Little_endian处理器上返回1。
423

被折叠的 条评论
为什么被折叠?



