このサンプルコードを見てみましょう:
#include <stdio.h>
int main(void){
int x = 1;
if(*(char *)&x == 1) printf("little-endian\n");
else printf("big-endian\n");
return 0;
}
私はこの(または同様の)命令*(char *)&x
を何度も見ましたが、それが何を意味するのかを完全に理解したいと思います!
つまり
、1)int変数のアドレスを取得し、
2)それをcharポインターにキャストします
。3)「newcharポインター」の最初の要素を数値1と比較します
。