请写一个C 函数,若处理器是Big_endian 的,则返回0;若是Little_endian 的,则返回1。
先分析一下,按照上面关于大小端模式的定义,假设int 类型变量i 被初始化为1。
我们完全可以利用union 类型数据的特点:所有成员的起始地址一致。
参考答案如下:
int checkSystem( )
{
union check
{
int i;
char ch;
}c;
c.i = 1;
return (c.ch ==1);
}
现在你可以用这个函数来测试你当前系统的存储模式了。
当然你也可以不用函数而直接去查看内存来确定当前系统的存储模式
同行 关于大端小端详解http://blog.163.com/law_abidingcamel/blog/static/114132654200932010282750/