回复 3楼 犬虫门心
非常感谢!讲的很清楚了,但是如果再加上CPU大小端一起讲解会有更好的效果,我想这个问题初学的人应该会很常见。以下是CPU大小判断的C代码;
int
checkSystem()
{
union
check
{
int
i;
char
ch;
}c;
c.i =1;
return(c.ch==1);
}
输出结果为1,CPU为Little-Endian型;输出结果为0,CPU为BIG-ENDIAN。
*
ptr2在CPU为Little模式时:
01
00 00 00
02 00 00 00
03 00 00 00
04 00 00 00
根据
小端模式(Little_endian):字数据的
高字节存储在高地址中,而字数据的
低字节则存放在低地址中。
得出结果为:02 00 00 00,即:0x2000000。
*ptr2在CPU为Big模式时:
00
00 00 01
00 00 00 02
00 00 00 03
00 00 00 04
根据
大端模式(Big_endian):字数据的
高字节存储在低地址中,而字数据的
低字节则存放在高地址中。
得出结果为:00 00 01 00,
即:0x100。
理解有错的话,请加
QQ:287068809指出,并讨论,希望不吝赐教!
[
本帖最后由 xby841221 于 2011-2-19 18:44 编辑 ]