免费注册 查看新帖 |

Chinaunix

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

垃圾代码分析——C语言二维数组范例 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2012-04-09 13:12 |只看该作者
AD8018 发表于 2012-04-09 12:55
继续说解毒专家 ----

39楼,解毒专家再次暴露了弱点,这里float和int,都是有十分必要和明确含义的,



这个pmerofc没错,函数本意是为qsort提供一个比较函数,但是float类型转换int会有精度损失,他这样return是不可取的

论坛徽章:
0
42 [报告]
发表于 2012-04-09 13:13 |只看该作者
AD8018 发表于 2012-04-09 12:45
如果输满 stnum 个非0数字
        for(int j = 0; j < stnum; ++j)
        {


在他的帖子里面提示过了,作者还没摸到道道

论坛徽章:
0
43 [报告]
发表于 2012-04-09 13:14 |只看该作者
0xC1988 发表于 2012-04-09 13:13
在他的帖子里面提示过了,作者还没摸到道道


哪里?

论坛徽章:
0
44 [报告]
发表于 2012-04-09 13:16 |只看该作者
AD8018 发表于 2012-04-09 13:14
哪里?


http://bbs.chinaunix.net/thread-3692320-23-1.html 230楼
AD大师要不要去给作者的书开开光

论坛徽章:
0
45 [报告]
发表于 2012-04-09 13:17 |只看该作者
本帖最后由 AD8018 于 2012-04-09 13:19 编辑
0xC1988 发表于 2012-04-09 13:12
这个pmerofc没错,函数本意是为qsort提供一个比较函数,但是float类型转换int会有精度损失,他这样re ...


你要回过头想,有没哪样才是更好的?
想到了吗?

当你想过了这件事,你也许会认同,所谓精度损失,有时也是个教条主义的说辞而已。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
46 [报告]
发表于 2012-04-09 13:19 |只看该作者
pmerofc 发表于 2012-04-09 12:48
明显是无厘头


也不是完全无厘头

考虑下下面这个数组在main()所在的源文件里:

static char s_thread_buff[4096][65536];

我习惯上会在main()的第一行写下这个:

bzero(s_thread_buff, sizeof(s_thread_buff));

而且我会给这个bzero()加个注释:

//申请静态内存

论坛徽章:
0
47 [报告]
发表于 2012-04-09 13:21 |只看该作者
0xC1988 发表于 2012-04-09 13:16
http://bbs.chinaunix.net/thread-3692320-23-1.html 230楼
AD大师要不要去给作者的书开开光


哦,是的,抱歉。没看到专家那个帖子里也有。

论坛徽章:
0
48 [报告]
发表于 2012-04-09 13:22 |只看该作者
AD8018 发表于 2012-04-09 13:17
你要回过头想,有没那样才是更可取的?
想到了吗?!


这个函数本意是对的,但是当两个数的差值是一个小数的时候,return有可能是0,如果换做是我,会对差值与一个浮点数精度值进行比较后再return

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

论坛徽章:
0
50 [报告]
发表于 2012-04-09 13:25 |只看该作者
0xC1988 发表于 2012-04-09 13:22
这个函数本意是对的,但是当两个数的差值是一个小数的时候,return有可能是0,如果换做是我,会对差值与 ...


可这是在qsort里啊,本来就是比大小,不是要得到近似于0这一结果。
你对浮点结果做的修饰,只会扩大误差。想明白了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP