- 论坛徽章:
- 0
|
字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,有小端、
大端两种字节顺序。小端字节序指低字节数据存放在内存低地址处,高字节数
据存放在内存高地址处;大端字节序是高字节数据存放在低地址处,低字节数
据存放在高地址处,通过测试SCO UNIX 5.0.6 为小端,但通过od 命令读取写
入的信息却发现低字节数据存放在内存高地址处,程序如下(在SCO UNIX 5.0.6
上进行测试)
include <stdio.h>
#include <stdlib.h>
int IsLittleEndian()
{
FILE *fp;
int rv;
unsigned int usData = 0x1234;
unsigned char *pucData = (unsigned char*)&usData;
fp = fopen("dat", "wb");
if (fp == NULL) {
printf("fopen error\n");
return -1;
}
rv = fwrite(&usData, sizeof(usData), 1, fp);
if (rv != 1) {
printf("fwrite error\n");
return -1;
}
fclose(fp);
if(*pucData == 0x34)
{
return 1;
}
else
{
return 0;
}
}
#od -Ad -hc ./dat 运行结果如下:
000000 1234 0000
4 022 \0 \0
0000004
我认为那应该是如下结果才正确,但实际结果如上所示
000000 3412 0000
022 4 \0 \0
0000004
请那位大虾能解释解释,谢谢了. |
|