Chinaunix首页 | 论坛 | 博客
  • 博客访问: 530902
  • 博文数量: 102
  • 博客积分: 2146
  • 博客等级: 大尉
  • 技术积分: 1146
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-09 17:32
文章分类

全部博文(102)

文章存档

2015年(14)

2014年(24)

2013年(5)

2012年(30)

2011年(16)

2010年(13)

分类: C/C++

2014-03-20 23:11:10

        为了移植性能的考虑,为了同一份代码在不同平台不同CPU下都能正确获得对应平台的各种数据大小范围,Linux下使用的宏是这样的:

点击(此处)折叠或打开

  1. #define INT_MAX ((int)(~0U>>1))
  2. 2 #define INT_MIN (-INT_MAX - 1)
  3. 3 #define UINT_MAX (~0U)
  4. 4 #define LONG_MAX ((long)(~0UL>>1))
  5. 5 #define LONG_MIN (-LONG_MAX - 1)
  6. 6 #define ULONG_MAX (~0UL)
  7. 7 #define LLONG_MAX ((long long)(~0ULL>>1))
  8. 8 #define LLONG_MIN (-LLONG_MAX - 1)
  9. 9 #define ULLONG_MAX (~0ULL)
        以INT_MAX为例说明:符号整型数,0取反得到全F,右移1位空出符号位,得到最大的符号整型数,无论它是16位平台还是32位平台,都是正确的,其他各个功能都类似。
阅读(7487) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~