该程序将决定大字节序或小字节序。

这是书中给出的答案:

int Test(){
    short int word = 0x0001;
    char *byte = (char *) &word;
    return (byte[0] ? BIG:LITTLE);
}

我不明白这一行:char *byte = (char *) &word;是否表示“将字的地址传递给字节”?那么,现在字节指向单词的原始地址了吗?如我所知,short int是2个字节。那么,“字节”是指向较高的地址还是较低的地址?为什么?

这是如何运作的?

最佳答案

它只是获取word的地址,将其转换为char指针,然后将其放入byte中。

那时,byte将指向2字节word的第一个字节,该字节的值(1或0)将告诉您使用的是大端存储还是小端存储。

07-24 09:46
查看更多