如何确定一个机器的字节顺序是大端还是小端

  1. int x = 1;  
  2. if(*(char *)&x == 1)  
  3.     printf("little-endian\n");  
  4. else  printf("big-endian\n");  

 

*(char *)&x
先将x的地址(int类型)转换为char *
再取这个(char *)地址里的内容*(char *)&x,判断里面的值是否等于1.

操作对象是 整型数地址 &x

eg: 如果x的地址为 2000 2001 2002 2003 这四个单元
则 *(char *)&x 相当于地址 2000里面的内容.

posted @ 2016-09-04 10:20  梦中山河  阅读(331)  评论(0编辑  收藏  举报