一个表达式的疑问

killme2008 2009-02-02 10:33:22
在源码中看到这么个宏

#define MAX_SIZET ((size_t)(~(size_t)0)-2)

从意义上说是定义了最大的size_t,可我看不明白这个表达式是如何计算出size_t的最大值的,取反再减2就可以了?请高人解答一二,谢谢。
...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hityct1 2009-02-03
  • 打赏
  • 举报
回复
看不懂。
~(size_t)0 就是最大值
yangkunhenry 2009-02-02
  • 打赏
  • 举报
回复
~0实际上才是最大值
kostion 2009-02-02
  • 打赏
  • 举报
回复
一楼二楼结合是正确答案
kostion 2009-02-02
  • 打赏
  • 举报
回复
一楼二楼结合是正确答案
waizqfor 2009-02-02
  • 打赏
  • 举报
回复

#define MAX_SIZET ((size_t)(~(size_t)0)-2)

这东西 要结合你代码去看啊 宏只是一个替换啊
arong1234 2009-02-02
  • 打赏
  • 举报
回复
无符号数最大值就是所有位为1,~0实际上才是最大值
减2也许是你的程序需要保留两个额外的大整数,这个表达式不是真实意义上的最大值

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧