Chinaunix首页 | 论坛 | 博客
  • 博客访问: 213254
  • 博文数量: 127
  • 博客积分: 1998
  • 博客等级: 上尉
  • 技术积分: 1432
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-07 16:41
文章分类

全部博文(127)

文章存档

2014年(41)

2013年(1)

2012年(85)

分类: C/C++

2012-04-12 18:43:04


  1. /*
  2.  * =====================================================================================
  3.  *
  4.  * Filename: endian_check.c
  5.  *
  6.  * Description:  字节序检测
  7.  *
  8.  * Version: 1.0
  9.  * Created: 04/12/2012 05:49:08 PM
  10.  * Revision: none
  11.  * Compiler: gcc
  12.  *
  13.  * Author: He Wei Ping (hwp195), hwp195@gmail.com
  14.  * Organization:
  15.  *
  16.  * =====================================================================================
  17.  */

  18. #include <stdio.h>

  19. int main(int argc, char *argv[])
  20. {
  21.     union{
  22.     int x;
  23.     char c[4];
  24.     }value;

  25.     value.x = 0x0a0b0c0d;
  26. #if __BYTE_ORDER == __LITTLE_ENDIAN
  27.     fprintf(stdout, "--------> Little endian <--------");
  28. #elif __BYTE_ORDER == __BIG_ENDIAN
  29.     fprintf(stdout, "--------> Big endian <--------");
  30. #else
  31. #error    "Please fix "
  32. #endif
  33.  
  34.     putchar('\n');
  35.     int i;
  36.     fprintf(stdout, "%-13s%-8s\n"," Address", " Value");
  37.     for(i = 0; i < 4; i ++)
  38.     {
  39.     fprintf(stdout, "%10p ---> %#04x\n", &value.c[i], value.c[i]);
  40.     }
  41.     fprintf(stdout, "\n");
  42.     return 0;
  43. }

阅读(880) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~