码迷,mamicode.com
首页 > 其他好文 > 详细

[UNP]判断大端小端

时间:2015-01-31 14:29:45      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

 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         else
19             printf("unknown\n");
20     } else
21         printf("sizeof(short) = %d\n", sizeof(short));
22 
23     exit(0);
24 }

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

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

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

[UNP]判断大端小端

标签:

原文地址:http://www.cnblogs.com/zoejiaen/p/4263938.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!