您好我对此处给出的示例代码感到困惑,以检查机器是小端还是大端:
int isLittleEndian( void )
{
unsigned int temp = 0x12345678;
char * tempAddress = &temp;
if( *tempAddress == 0x12 )
{
return 0; // Indicating False
} else {
return 1; // Indicating True
}
}
这里给出的关于小和大字节序的描述:
http://support.microsoft.com/kb/102025
LE机器上的第二个链接说0x1234作为0x34 0x12存储在内存中,但是如果第一个字节是0x12,则第一个链接中的isLittleEndian()函数返回true。这不是第二个环节的矛盾吗?如果没有,那么我误解了什么?
答案 0 :(得分:2)
不,如果第一个字节是0x12,则函数返回 false 。这是应该的,并且与字节序的描述一致。