我们知道机器的CPU分为大端和小端,但是如何通过程序区判断呢?这里给出一个常用的,比较好用的办法,先看程序:
/*************************************************************************
> File Name: HostOrder.c
> Author: Baniel Gao
> Mail: createchance@163.com
> Blog: blog.csdn.net/createchance
> Created Time: Tue 08 Apr 2014 08:39:23 PM CST
************************************************************************/
#include <stdio.h>
int main(void)
{
union {
int a;
char b;
} test;
test.a = 1;
if (test.b == 1)
printf("Your host is little-endian! \n");
else
printf("Your host is big-endian! \n");
}
这里使用了联合体,程序中联合体的大小为四个字节,我们对成员a赋值为1,成员b的值就是低地址上的值。如果b等于1说明你的机器是这样存放数据的:高地址存放数据的高位,低地址存放数据的低位,即小端模式;反之则是大端模式。