首页 > 代码库 > [UNP]判断大端小端

[UNP]判断大端小端

 1 #include    "unp.h" 2  3 int 4 main(int argc, char **argv) 5 { 6     union { 7       short  s; 8       char   c[sizeof(short)]; 9     } un;10 11     un.s = 0x0102;12     printf("%s: ", CPU_VENDOR_OS);13     if (sizeof(short) == 2) {14         if (un.c[0] == 1 && un.c[1] == 2)15             printf("big-endian\n");16         else if (un.c[0] == 2 && un.c[1] == 1)17             printf("little-endian\n");18         else19             printf("unknown\n");20     } else21         printf("sizeof(short) = %d\n", sizeof(short));22 23     exit(0);24 }

union是一个很少见的关键字。

在union中可以定义多个成员,union的大小由最大的成员决定。

union中多个成员共享一块内存,对某一成员的赋值会改变其他成员。

[UNP]判断大端小端