免费注册 查看新帖 |

Chinaunix

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

脱裤子放屁的代码…… [复制链接]

论坛徽章:
0
91 [报告]
发表于 2007-08-10 09:37 |只看该作者
做软件工程师就要习惯脱了裤子再放屁。

论坛徽章:
0
92 [报告]
发表于 2007-08-10 09:37 |只看该作者
这个问题可以说没有什么必要讨论的,你们站在技术角度来思考会觉得那样做很多余,如果你们站在良好的编码规范和习惯来说这个问题就没有必要在讨论了,打个现实中的比喻,你家水管坏了,需要去买钢管,虽然你可以先用尺量一下长度之后在去买,你能肯定买回来的就真的很适用吗?从概率来说可能会有70%买回来的钢管适用,这就是中间存在的问题,如果你买的钢管比你量的长度更长一些是否能避免那30%的失误?只需要回来多些工夫调整长度,这就是加NULL或不加NULL的区别,这种方法是别人提倡的一种好习惯,而不是技术上面的问题,和错误也没有直接关系,

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
93 [报告]
发表于 2007-08-10 09:39 |只看该作者
原帖由 kookworld 于 2007-8-10 09:37 发表
这个问题可以说没有什么必要讨论的,你们站在技术角度来思考会觉得那样做很多余,如果你们站在良好的编码规范和习惯来说这个问题就没有必要在讨论了,打个现实中的比喻,你家水管坏了,需要去买钢管,虽然你可以先用尺 ...

为啥要用钢管作比方而不是窗户玻璃?

论坛徽章:
0
94 [报告]
发表于 2007-08-10 09:42 |只看该作者
我只是想用现实生活中的事物来说明这个问题,没有想到好的东西来做比方,呵呵

论坛徽章:
0
95 [报告]
发表于 2007-08-10 11:06 |只看该作者
野指针,野指针,野指针,野指针,野指针,野指针!

free(p);

if(!p)
{
     p=malloc(....);
}
else
{
    p->xxxxx=yyyyy;/*over over over !!!*/
}

论坛徽章:
0
96 [报告]
发表于 2007-08-10 11:38 |只看该作者
不好的习惯!
难不成变量也涨价了?
如果是为同一个目的,为什么要在中间释放内存?为什么不 realloc ?
如果不是为同一个目的,为什么要用同一个指针?

原帖由 高峰 于 2007-8-10 11:06 发表
野指针,野指针,野指针,野指针,野指针,野指针!

free(p);

if(!p)
{
     p=malloc(....);
}
else
{
    p->xxxxx=yyyyy;/*over over over !!!*/
}

论坛徽章:
0
97 [报告]
发表于 2007-08-10 12:02 |只看该作者
从电信软件的角度来看,这的确是良好的习惯,并非多此一举.电信软件可以容忍bug,但不能donw机。bug造成当前服务失败,这没什么,重新再来一遍就好了,只是一个用户的事。要是down了,就是影响所有用户的大事。

假定原来有10个bug,我们在free之后设成NULL,可以在测试阶段立即发现其中6个。剩下4个在运行时会因找不到数据被上层软件认定为无效服务。这时控制权仍在应用程序本身。增加一些无效操作对系统稳定性没有决定性影响。
如果没有这样的习惯,只要有错就会转到OS,结果不可预料。当然一般是coredump.所以电信软件有点错没关系,稳定压倒一切。
突然想到有点类似于计算机外的世界,有点无奈...

论坛徽章:
0
98 [报告]
发表于 2007-08-10 12:15 |只看该作者
归根结底,NULL 不能解决所有问题。要解决问题,一开始就不能那么用!如果想当然地以为用了 NULL 就万事大吉,代码胡编乱造,那肯定是非常危险的!别以为养成了 NULL 的习惯,遇到非 NULL 指针就是合法可用的!
原帖由 ypxing 于 2007-8-9 22:41 发表
谁告诉你这个地方设了NULL,别人就会放松警惕了?

别人这地方注意了,其他地方还会注意.

你这个地方不注意,别的地方可能还是会不注意

你这种"这个地方不用管了,反正别的地方也会犯错误"的心态最不好


[ 本帖最后由 mmmixx 于 2007-8-10 12:27 编辑 ]

论坛徽章:
0
99 [报告]
发表于 2007-08-10 12:17 |只看该作者
原帖由 wolfkin 于 2007-8-10 11:38 发表
不好的习惯!
难不成变量也涨价了?
如果是为同一个目的,为什么要在中间释放内存?为什么不 realloc ?
如果不是为同一个目的,为什么要用同一个指针?


支持!

同时,再对那些说 free/delete 空指针会 coredump 的人说一遍,标准规定 free/delete 空指针是不作为的,不会有问题!当然,如果你使用的编译器/库对标准支持不好那就另当别论

论坛徽章:
0
100 [报告]
发表于 2007-08-10 12:26 |只看该作者
算了,给你说啥也没用了,你该怎么用还是怎么用吧

原帖由 mmmixx 于 2007-8-10 12:15 发表
归根结底,NULL 不能解决所有问题。要解决问题,一开始就不能那么用!如果想当然地以为用了 NULL 就万事大吉,代码胡编乱造,那肯定是非常危险的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP