- 论坛徽章:
- 0
|
估计是修改过程中习惯不同的原因吧
比如最初可能是
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不算什么大恶吧,只要能自己保证正确就行。
至于格式化参数,现在没有不能保证以后没有,或者曾经有过,因为种种原因又去掉了,只是代码还保留原样而已
在修改别人代码的时候,一般都是尽量最小修改,谁知道前面的人的习惯,要是改了那种牵一发而动全身的代码最麻烦的还不是自己么……
所以楼主大可不必纠结,如果那是新手写的代码,那应该给予理解,毕竟大家都经历过新手阶段,我每次看自己早期写的代码都脸红不已……如果是经过了长期使用和维护的代码,那就更不用纠结了,都不知道多少个人改过的东西,保证正确才是最最重要的(毕竟已经在使用了),漂亮的代码什么的,只是浮云 |
|