该程序将决定大字节序或小字节序。
这是书中给出的答案:
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)将告诉您使用的是大端存储还是小端存储。