- 主题:有个老外code review不让过
是啊,lint报错那是lint的事,但lint报的错可以不用改。你不就这个意思嘛。
加上const没意义。不就相当于lint的规则在你面前是摆设嘛,那么多公司用的lint,但它里的规则在你面前一文不值。你说了算。
【 在 flw 的大作中提到: 】
: 有何意义就要你来发掘了。
: 你又没充值,我凭什么告诉你。
:
--
FROM 120.245.128.*
我感觉老外肯定是看了函数实现,发现path并没有做++操作,所以说要加第二个const。
的确像你说得,一个是增加可读性,让函数外面知道path在内部没有做++操作,不会导致异常(比如外面是一个int [10]数组,传了第[9]到函数里,函数不会++指向非法得[10]),另一方面就是让维护的人修改函数实现的时候不要添加++操作,如果要++操作编译器会提示,从而让程序员认真考虑。
【 在 caihl 的大作中提到: 】
: 对于楼主的path来说,强制要求两个const不一定合理吧,reviewer不一定能确定函数里要不要用到path++吧,或者reviewer认为你要这么操作应该另外定义一个变量把path复制过去这么用?好像这么干没意义呀,反正函数内用了path++也不影响外面的调用者的path
: 在我看来这个多出来的const真正作用应该是假如真的不需要path指向其他地址,也就是不需要path++类似用法,这个const可以让这个函数的阅读者对这个path参数放心,中途从未指向过其他地址,在代码中间的任何地方用到时都知道这就是指向传来时的那个地址
--
FROM 120.245.128.*
如果用的c/c++做开发,不做参数const检查那太可怕了,除非你们都是值传递,不涉及指针,不用引用。
比如一个系统的全局参数,要作为只读参数用引用的方式传到不同函数里,怎么保证不同函数里不修改这个全局参数?只能加const吧。有工程师不小心在函数里把全局参数改了咋办,怎么查?
【 在 xshoushoux 的大作中提到: 】
: 绝大部分公司/项目都不会去检查函数参数加不加const,收益极小,只会让代码变的啰嗦
: 而且参数上的const对于接口使用者来说是完全无意义的信息,降低接口描述的可读性
: 如果一个局部变量你都要用const来保证在函数内部不被意外修改,那你可能得反思下你这个函数是不是有点太复杂了
: ...................
--
FROM 120.245.128.*
函数里你咋把两const的指针传给其他可修改的指针变量?要不要加强制转换,如果这个工程师问都不问,想都不想就直接把两const的指针转成可修改的指针,然后去修改其中的值,那这个工程师就可以开除了吧。而且这样的问题一review就发现了。
【 在 xshoushoux 的大作中提到: 】
: “一个是增加可读性,让函数外面知道path在内部没有做++操作,不会导致异
: 常(比如外面是一个int [10]数组,传了第[9]到函数里,函数不会++指向非法得[10])”
: 这都什么鬼......
: ...................
--
FROM 120.245.128.*
我回复你自己说的代码不加const检查好吧。
【 在 xshoushoux 的大作中提到: 】
: 这个主题说的不是第二个const吗?你究竟知不知道自己在说什么。。。
--
FROM 120.245.128.*
那你为啥说: “绝大部分公司/项目都不会去检查函数参数加不加const,收益极小,只会让代码变的啰嗦”
我回复的是你这个问题。你是不是觉得第一个const,第二个const检查在lint里可以分开配置?
【 在 xshoushoux 的大作中提到: 】
: 这个主题贴从头到尾只在讨论第二个const吧
:
--
FROM 120.245.128.*
传两const的指针就是让你用指针操作,你非要用n[20]没人拦得了你。
【 在 flw 的大作中提到: 】
: n[20] 了解一下。
: 这人是脱离编程多久了。
:
--
FROM 120.245.128.*
好啊,那你把lint配置成只查第一个const,不查第二个const呗。如果能那没问题,说明lint不认为这是个告警。
不能,你和前面那个兄弟一样觉得你们比lint厉害。
【 在 xshoushoux 的大作中提到: 】
: 我说的是第二个const
: 这个主题帖里第一个const根本没有讨论的必要,默认肯定说的就是第二个const
:
--
FROM 120.245.128.*
我也是感觉你比世界上许多人都厉害。我甘拜下风。
【 在 flw 的大作中提到: 】
: 越说越离谱了。
: 你说的是银河系的 C 语言吗?
: 总感觉你是来自于平行时空。
: ...................
--
FROM 120.245.128.*
不明白?
传了两const指针就是说只能对这个地址取值,不能加偏移,你非要加偏移那就自求多福吧
【 在 flw 的大作中提到: 】
: 越说越离谱了。
: 你说的是银河系的 C 语言吗?
: 总感觉你是来自于平行时空。
: ...................
--
FROM 120.245.128.*