- 主题:有个老外code review不让过
关键是看老外自己平时是不是这么写的,以及他对别人的要求又是怎样的。
C 语言这么多历史代码,包括标准库,各种大型项目,
真没见有几个是这么写的。
【 在 hgoldfish 的大作中提到: 】
: 这个写法就是 c++ 的 const string & 的写法。。严格意义上来说,确实这老外的写法会比较好一些。
--
FROM 112.97.61.*
【 在 freyoneby 的大作中提到: 】
: 一定要函数参数加个const,比如conf(const char* path)改成conf(const char* const path),我说参数的值改不了,没必要加,他说能加const地方都要加,想问一下参数要么进栈要么进寄存器,const是怎么作用到寄存器上的?
: - 来自 水木社区APP v3.5.7
这个东西就是编译器检查, 属于合规内容,
既然让你加, 你就加了, 这是管理范畴, 服从管理, 这是态度,不是真理,
公司需要真理讨论, 需要变更规则,自然会给你发表真理简介的机会,
坚持自己脑子里的真理, 需要自己的小宇宙, 打工狗就算了。
--
FROM 124.126.2.*
对,C的库里面基本见不到这么恶心人的用法。
要么是 const char,要么是 const char *。
const char * const 纯属脱裤子放屁。
【 在 flw 的大作中提到: 】
: 关键是看老外自己平时是不是这么写的,以及他对别人的要求又是怎样的。
: C 语言这么多历史代码,包括标准库,各种大型项目,
: 真没见有几个是这么写的。
: ...................
--
FROM 216.240.30.*
对,这就是为嘛我认为这种写法是脱裤子放屁的原因。
形参是传值,const char * 就已经保证了 caller 不会被修改,这就够了。
至于被 copy 过去的指针,想改就改呗,who 特么 cares?
【 在 mopo 的大作中提到: 】
: 这个好像没啥意义吧,函数里就算给path重新赋值了又咋样,对外部毫无影响
--
FROM 216.240.30.*
首先,他的建议更加严格,加上之后,一看函数的声明就知道path的内容改不了,path 也不能指向其他地方。如果少一个const,path 可能指向其他地方。
其次,这些东西其实并不影响什么,因为如果这个代码足够短,一两眼就知道它会不会指向其他的地方;而且即使用了const,也有办法绕开编译器。
我现在对于这种东西,觉得真心意义不大。代码便于理解最重要。我觉得这些细枝末节的东西对于代码好不好读,作用很小。
【 在 freyoneby 的大作中提到: 】
: 一定要函数参数加个const,比如conf(const char* path)改成conf(const char* const path),我说参数的值改不了,没必要加,他说能加const地方都要加,想问一下参数要么进栈要么进寄存器,const是怎么作用到寄存器上的?
: - 来自 水木社区APP v3.5.7
--
FROM 114.245.93.*
折中一下,指针改成引用算了,指针还得判断,多麻烦。
【 在 freyoneby 的大作中提到: 】
: 一定要函数参数加个const,比如conf(const char* path)改成conf(const char* const path),我说参数的值改不了,没必要加,他说能加const地方都要加,想问一下参数要么进栈要么进寄存器,const是怎么作用到寄存器上的?
:
: \- 来自 水
: ..................
发自「今日水木 on V2217A」
--
FROM 114.93.97.*
老外的提议能改善代码,防止将来有人改了输入参数引发另一个人的误解。大体思路是把运行期错误、逻辑误解挪到编译期,让编译器帮忙提前阻止潜在的bug。 他/她的提议是对项目的改善,哪怕微不足道的一点改善也是改善,不是把项目变差。
见贤思齐,其实你的阻止大可不必。没必要带着情绪对抗改善性建议,听他/她的,完善了代码就得了。
十几二十年前大家都不怎么写 unit test, 现在哪儿哪儿都是unit test, integration test。行业在进步,以前不加额外的const,可能是开疆拓土阶段太忙了顾不得这些细节了。现在补上也挺好。你应该感谢人家帮你拓展了思路。
【 在 freyoneby 的大作中提到: 】
: 一定要函数参数加个const,比如conf(const char* path)改成conf(const char* const path),我说参数的值改不了,没必要加,他说能加const地方都要加,想问一下参数要么进栈要么进寄存器,const是怎么作用到寄存器上的?
: - 来自 水木社区APP v3.5.7
--
FROM 74.88.40.*
这两个的 意义不同啊
【 在 z16166 的大作中提到: 】
: 搞两个const来声明一个变量的代码,很少见啊。
: 虽然说法没错,但是太啰嗦了,代码里到处是这种双const的话,扎眼
--
FROM 47.144.177.*
个人觉得 这就好比 两人签了一份合同 人手一份复印件
但有人 拿来就把背面 当了草稿纸
影响法律意义吗? 一点也不
感觉怪怪的吗? 有点
不能这么用吗? 好象也无所谓...
【 在 cjon 的大作中提到: 】
: 对,这就是为嘛我认为这种写法是脱裤子放屁的原因。
: 形参是传值,const char * 就已经保证了 caller 不会被修改,这就够了。
: 至于被 copy 过去的指针,想改就改呗,who 特么 cares?
--
FROM 47.144.177.*
【 在 flw 的大作中提到: 】
: 要不要给 path 赋值,看代码就看出来了呀。
: 那反过来看,对方写了什么代码,是否都加了 const,
: 大家总得一致吧。
: ...................
我也是这个意见。review标准有规范么? 有的话按照规范来。规范提了那就必须加。规范没提就看看本文件的上下邻居,如果别人都不加,那reviewer让加就可以argue,这属于个人喜好,不一定要follow
--
FROM 111.197.114.*