免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10690 | 回复: 51
打印 上一主题 下一主题

[C] 讨论size_t [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-11 10:19 |只看该作者 |倒序浏览
本帖最后由 jackarain 于 2012-10-11 10:57 编辑

在weibo上和人发生争论, 感觉weibo不是讨论技术的地方, 故把这个问题放到CU上来讨论, 想了解下到底大家对size_t是什么看法.

ok, 问题是这样的, 我在weibo上看到有人说, 他因为用size_t吃过大亏, 然后他告诫大家, 最好使用int32_t这种确定宽度的类型(他说过他正是用在文件格式协议中吃了大亏,不幸被我言中).

我对此的意见是表示反对, 并且认为这是在误导他人(他的那条weibo是被很多人当经验转发,才被我看到的,我认为已经误导了不少人)。

我的意见是, 有人把size_t使用在网络协议的结构体中传输(或文件 格式协议中),类似这样的情况就是瞎用,出了问题只能怪自己。显然类似memcpy的参数3如果使用int32_t,数值大于int32_t范围(在64bit系统是完全可能的)就是问题。

现在,大家发表下自己的意见吧。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
2 [报告]
发表于 2012-10-11 10:28 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
3 [报告]
发表于 2012-10-11 10:30 |只看该作者
100%同意你的观点

论坛徽章:
0
4 [报告]
发表于 2012-10-11 10:39 |只看该作者
本帖最后由 jackarain 于 2012-10-11 11:17 编辑

我现在贴上weibo上的讨论url
(不在主题中贴出是因为国人很多都会因为一些人稍有名气, 而站队或骑墙, 即使是讨论技术)

http://weibo.com/1497035431/yFGgesCy9

这是一个很基础的问题, 因此我说他基础不好, 他认为我说他基础差, 说他误导人, 他很不爽, 现在他已经屏闭了我的发言, 这并不重要, 不可理解的是, 支持他的人还很多(我不仅想, 难道中国程序员普遍是这样吗? 我相信CU上应该不是), 而且他没打算纠正, 并且继续发表他的错误建议(http://blog.sina.com.cn/s/blog_593af2a7010180qx.html), 我认为, 这是很扯淡的

论坛徽章:
0
5 [报告]
发表于 2012-10-11 10:48 |只看该作者
pmerofc 发表于 2012-10-11 10:28
回复 1# jackarain



我认为这个可以作为案例写到你的书里.

论坛徽章:
27
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之福建
日期:2023-03-31 15:54:2315-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:13
6 [报告]
发表于 2012-10-11 10:52 |只看该作者
明显应该用 size_t 啊,虽然很多时候我也用 uint32_t 代替它 ,哈哈

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
7 [报告]
发表于 2012-10-11 11:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
8 [报告]
发表于 2012-10-11 11:08 |只看该作者
pmerofc 发表于 2012-10-11 11:04
好主意!
谢谢
不过我认为你写应该会写得更好


如果可以, 我愿意

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
9 [报告]
发表于 2012-10-11 11:10 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2012-10-11 12:40 |只看该作者
存在就一定的合理性吧?
一巴掌全拍死了是否真的合适?

不少标准IO函数都带缓冲的,稍微不注意,用网络编程上也会带来问题。未必也一并全拍死了瓦?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP