免费注册 查看新帖 |

Chinaunix

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

今天看到一家公司的源代码,我疯了! [复制链接]

论坛徽章:
0
71 [报告]
发表于 2010-11-15 09:50 |只看该作者
只见IB的

代码没有太大问题, 不是很好 也没太大问题。

问题无非 memset 参数
sprintf 越界。

但是在这里是没有问题的。 从运行上看对结果也毫无影响。

所以 你有水平 去掉memset, 改成snprintf

这种bug 在apache 的源码里你到处都能看得到

apache 的源码  很多时候 传指针进去 它都不判断空呢

论坛徽章:
0
72 [报告]
发表于 2010-11-15 10:06 |只看该作者
是不是以代码行算价钱?

论坛徽章:
0
73 [报告]
发表于 2010-11-15 10:24 |只看该作者
这个没啥吧  去屎把

论坛徽章:
0
74 [报告]
发表于 2010-11-15 10:39 |只看该作者
估计是修改过程中习惯不同的原因吧
比如最初可能是
const int q_len = 129;
char* query = new char[q_len];
memset(query, q_len, 0);
……

结果后面因为找不出问题所以开始乱怀疑,内心惶恐不能自已,有内存泄漏总也找不到原因,所以直接就改成数组(或者经历我们所不知道的痛苦的修改过程),最后变成:
char sql[129] = {0}; //改成数组方式,用栈内存
memset(query,sizeof(query), 0);   //这里后面的程序员把前辈的代码保留了,顺手改成sizeof了
……

于是楼主就纠结了……

用sprintf不算什么大恶吧,只要能自己保证正确就行。
至于格式化参数,现在没有不能保证以后没有,或者曾经有过,因为种种原因又去掉了,只是代码还保留原样而已

在修改别人代码的时候,一般都是尽量最小修改,谁知道前面的人的习惯,要是改了那种牵一发而动全身的代码最麻烦的还不是自己么……

所以楼主大可不必纠结,如果那是新手写的代码,那应该给予理解,毕竟大家都经历过新手阶段,我每次看自己早期写的代码都脸红不已……如果是经过了长期使用和维护的代码,那就更不用纠结了,都不知道多少个人改过的东西,保证正确才是最最重要的(毕竟已经在使用了),漂亮的代码什么的,只是浮云

论坛徽章:
0
75 [报告]
发表于 2010-11-15 10:57 |只看该作者
全是垃圾,一个C++程序员竟然还用sprintf,snprintf这些C遗留的垃圾函数!我无误了,记住:正确和安全永远要排在第一位,其后才考虑所谓的微乎其微的效率。

论坛徽章:
0
76 [报告]
发表于 2010-11-15 10:58 |只看该作者
这个代码好像没什么问题吧。应该是老C程序员的风格。

论坛徽章:
0
77 [报告]
发表于 2010-11-15 11:03 |只看该作者
这个,实在有些情况没办法,能忍就要忍;一个成规模的C,CXX后台程序,能活上几年,一般都经过3,4拨人摆弄了吧,只要无关现在要修改的,其他部分谁想去改它啊。
设置P=NULL我实在看不出有什么副作用,要写安全健壮的代码,脱裤子放屁就脱呗,总比偶尔一不小心放屁时连屎一起拉出来搞到裤子好,现在CPU这么快,还怕跑个P=NULL?

论坛徽章:
0
78 [报告]
发表于 2010-11-15 11:19 |只看该作者
靠!这个coder基本C都TM不懂!memset都用错了!

还有,他的老师没教过他sprintf是不能用的吗? ...
JohnBull 发表于 2010-11-13 18:27

sprintf为什么不能用呢,版主讲解一下?

论坛徽章:
0
79 [报告]
发表于 2010-11-15 11:21 |只看该作者
我也同意楼上 看法 ,只要程序没有大的失误,多做一些工作无伤大雅,前提是不影响效率。
我更关注代码的健壮性可靠性,可维护性。有些时候,我会有意识的脱了裤子放屁。。呵呵。

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
80 [报告]
发表于 2010-11-15 11:23 |只看该作者
晕死。不及明白想干什么。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP