Chinaunix首页 | 论坛 | 博客
  • 博客访问: 612255
  • 博文数量: 113
  • 博客积分: 2554
  • 博客等级: 少校
  • 技术积分: 1428
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-21 19:53
文章分类

全部博文(113)

文章存档

2014年(1)

2013年(2)

2012年(94)

2011年(16)

分类: C/C++

2012-04-11 19:26:30


点击(此处)折叠或打开

  1. #include <stdio.h>
  2. int main()
  3. {


  4.     int a = 0x80000000;
  5.     printf("os is%d\t%d\n",a,sizeof(int));
  6.     union ut
  7.     {
  8.         short s;
  9.         char c[2];
  10.     } u;
  11.     if(sizeof(short) == 2)
  12.     {
  13.         u.s = 0x0102;
  14.         if(u.c[0] == 1 && u.c[1] == 2)
  15.         {
  16.             printf("big enidan\n");
  17.         }
  18.         else if(u.c[0] == 2 && u.c[1] == 1)
  19.         {
  20.             printf("little endian.\n");
  21.         }
  22.         return 0;
  23.     }
  24.     return 0;
  25. }

阅读(7387) | 评论(1) | 转发(0) |
0

上一篇:tcpdump

下一篇:centos升级内核

给主人留下些什么吧!~~

bg2bkk2014-07-27 11:29:51

你好,你的这个判断32位还是64位的printf("os is%d\t%d\n",a,sizeof(int));语句不对,不能这么判断
int的大小是和体系结构有关的,和操作系统的32位和64位无关,应该是
int *p, printf("%d\n",sizeof(p));这样的话,一个指针的大小是8字节,是64位系统,4字节的话是32位系统