- 主题:有个老外code review不让过
加这个是为了防止潜在的被修改带来的风险,如果有这样的问题出现够喝一壶的。
有空看看什么是pclint什么是代码静态检查,这么提根本不是啥style的问题。老外的意见就是修复在静态检查中出的一个警告。
另外前面拿strcpy说事的,不知道还有strncpy这样的函数嘛? 为啥有各种各样的代替strcpy的函数,就是因为strcpy各种不安全。
【 在 z16166 (Netguy) 的大作中提到: 】
: 不是对code review这个活动抵触,而是style的问题
:
: 我觉得这种双const的style是属于政zhi上正确,但是不值得提倡的,除非是写一些要求极为严格的产品(通常是拿造原子弹来比拟)
:
--
修改:comus FROM 120.245.128.*
FROM 120.245.128.*
是可以定制啊,但如果基本的const检查都不添加,那要lint有何意义?
【 在 z16166 (Netguy) 的大作中提到: 】
: pclint的规则是可以定制的,不是所有的公司都用一套规则
:
: 【 在 comus 的大作中提到: 】
: : 加这个是为了防止潜在的被修改带来的风险,如果有这样的问题出现够喝一壶的。
--
FROM 120.245.128.*
就楼主的这行代码,只能查出const这个告警。
我说strncpy这个例子只是想说strcpy有很多漏洞,不应该作为参考标准。
lint会根据代码前后文调用关系给出告警,不跑lint那就加总比不加的好,没必要纠结这样的问题。
代码写多了会发现写得越规范,自己的代码越省心,少出幺蛾子。
【 在 flw (帅五进九) 的大作中提到: 】
:
: 【 在 comus 的大作中提到: 】
: : 加这个是为了防止潜在的被修改带来的风险,如果有这样的问题出现够喝一壶的。
: : 有空看看什么是pclint什么是代码静态检查,这么提根本不是啥style的问题。老外的意见就是修复在静态检查中出的一个警告。
--
FROM 120.245.128.*
我实际就这么做啊,能const就const。不然lint出来还得在花时间再提交代码,浪费时间
【 在 flw 的大作中提到: 】
: 别扯那么多,拿出实证来。
:
: 你自己平时也是这么做的吗?
: ...................
--来自微微水木3.5.14
--
FROM 120.245.128.*
不就讨论有没必要加第二个const嘛,别人经验总结出来的规则你当没任何意义而已。
你考虑的是你自己的代码,你自己用,自己维护。别人想得更多的是你的代码怎么防止别人用或者修改的时候出错。这就是区别
【 在 flw 的大作中提到: 】
: 那我有理由相信你都没搞懂我们在讨论什么。
:
: 【 在 comus 的大作中提到: 】
: ...................
--来自微微水木3.5.14
--
修改:comus FROM 221.216.116.*
FROM 221.216.116.*
你意思github,kernel的代码里没bug或者没有风险,随意用?
【 在 flw 的大作中提到: 】
: 你说的别人怕只是你自己吧。
: github.com 算不算别人?
: kernel.org 算不算别人?
: ...................
--
FROM 120.245.128.*
不好意思纯C用不多,但给你搜了一下还有那么几行。
另外strcpy没写成这样,是因为src在函数里需要++,所以不可能加两个const。考虑了一下,加不加两个const要看函数里有没有对指针++操作,和前面有人说的一方面增加可读性,另一方面防止后续有人随意进行++操作,从而引入风险。
【 在 flw 的大作中提到: 】
: 所以他实际上根本就不是这么做的。
: 或者也许他根本就不理解我们在讨论什么。
:
[upload=1][/upload]
--
修改:comus FROM 1.202.80.*
FROM 120.245.128.*
我只能说你们的静态检查配置和我遇到的公司的做法恰恰相反。我无法理解你们的出发点的啥 :(
【 在 ble 的大作中提到: 】
: 然而和你的预期恰恰相反阿,这个地方lint会报警的。clang-tidy会给传值参数加const的行为报警。
:
--
FROM 120.245.128.*
是啊,lint的这条规则在你和你说的大部分人面前一点价值都没有,纯摆设。
【 在 flw 的大作中提到: 】
: 我只是想说,你说的别人只是你自己罢了。
: 在我眼中,别人都不写第二个 const,
: 即便有,那也是极少数中的极少数。所以如果不是刻意抬杠的话,基本可以说,别人都不写了。
: ...................
--
FROM 120.245.128.*
如果函数里不对指针操作lint就要求加const。按你说的,lint把对参数做const检查的规则都去掉,用lint有何意义?
【 在 flw 的大作中提到: 】
: 大部分编程语言的 lint 规则都会比实践中更严格吧。
: 这也很正常,毕竟 lint 类似于一个全集,实践中一般都是根据需要关闭一些不必要的。
: 很少有人 lint 全开。
: ...................
--
FROM 120.245.128.*