免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sudayly
打印 上一主题 下一主题

不用sizeof求整型变量占用多少个字节 [复制链接]

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
11 [报告]
发表于 2010-10-15 14:44 |只看该作者
回复  hellioncu


    说的对,下面这个程序就没有误差了= =

(其实是求的2的n次方中的n,肯定不会 ...
starwing83 发表于 2010-10-15 14:36



    加1太多了,有风险,0.1足矣

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
12 [报告]
发表于 2010-10-15 14:50 |只看该作者
加1太多了,有风险,0.1足矣
hellioncu 发表于 2010-10-15 14:44



    应该不会。log(2^32-1)的结果绝对不是32,所以最终的结果取整一定是log(2^32)-1,所以加1是很安全的。(注意是在取整之后加的。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
13 [报告]
发表于 2010-10-15 15:15 |只看该作者
蛋疼帖……

sizeof  (至少C89和C++中)是常量表达式。
sizeof(int) 必定是常量表达式。

  1. struct two_int
  2. {
  3.       int x;
  4.       int y;
  5. };

  6. enum
  7. {
  8.       expect = sizeof(int),
  9.       result = offsetof(two_int, y),
  10. };

  11. typedef int verify[expect==result? 1: -1];
复制代码

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
14 [报告]
发表于 2010-10-15 15:21 |只看该作者
他是求占多少字节,不是求sizeof的等效形式,因此并不一定需要是编译期已知的。

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
15 [报告]
发表于 2010-10-15 15:28 |只看该作者
回复 14# starwing83

上面那段代码 +

  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.       printf("sizeof(int)=%d\n", result);
  5.       return 0;
  6. }
复制代码

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
16 [报告]
发表于 2010-10-15 15:29 |只看该作者
果然是元编程大牛啊……

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
17 [报告]
发表于 2010-10-15 15:32 |只看该作者
对了,OW你的新头像是春丽?

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
18 [报告]
发表于 2010-10-15 15:37 |只看该作者
对了,OW你的新头像是春丽?
starwing83 发表于 2010-10-15 15:32




http://baike.baidu.com/view/1236291.htm

名字就是"神乐", "银魂"是出处。
好像她没有姓的, 在某一集里面突然兴起, 决定给自己一个姓, 叫"山本"还是啥的……

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
19 [报告]
发表于 2010-10-15 15:41 |只看该作者
好可爱呀~~

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
20 [报告]
发表于 2010-10-15 15:46 |只看该作者
回复 19# starwing83

不要被表现迷惑了, 她其实是怪力、 大胃、 毒舌……
头像取至动画111集, 《独立日》, 仅仅在这一集中, 这个xx女终于有点想一个15岁的小女生了……

完全跑题了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP