用编程来判断系统是大端还是小端

来源:互联网 发布:c语言32个关键字解释 编辑:程序博客网 时间:2024/04/29 08:53
  • 大端是高位字节先存储(高地址)
  • 小端是地位字节先存储(低地址)
  • 网络字节序是大端的,也就是高位字节先传输

下面是程序:

#include <stdio.h>int main() {    union ut{    short s;    char c[2];    }u;    if(sizeof(short) == 2)    {        u.s = 0x0102;        if(u.c[0] == 1 && u.c[1] == 2)            printf("big endian\n");        else if(u.c[0] == 2 && u.c[1] == 1)            printf("little endian\n");    }    return 0;}

上面的程序有许多小细节,其中联合里的数据共用内存,所以数组C里的内容是0x0102。很巧妙的利用联合这一特性,当然还有其他方法。

0 0
原创粉丝点击