- 主题:有个老外code review不让过
所以写个求和函数还得定义成 int sum(const int a, const int b) ?
【 在 chris73 的大作中提到: 】
: 这个不错。能避免指针对象的无意修改
: --来自微微水木3.5.14
--
修改:xshoushoux FROM 58.35.30.*
FROM 58.35.30.*
绝大部分公司/项目都不会去检查函数参数加不加const,收益极小,只会让代码变的啰嗦
而且参数上的const对于接口使用者来说是完全无意义的信息,降低接口描述的可读性
如果一个局部变量你都要用const来保证在函数内部不被意外修改,那你可能得反思下你这个函数是不是有点太复杂了
【 在 comus 的大作中提到: 】
: 我只能说你们的静态检查配置和我遇到的公司的做法恰恰相反。我无法理解你们的出发点的啥 :(
--
修改:xshoushoux FROM 58.35.30.*
FROM 58.35.30.*
“一个是增加可读性,让函数外面知道path在内部没有做++操作,不会导致异
常(比如外面是一个int [10]数组,传了第[9]到函数里,函数不会++指向非法得[10])”
这都什么鬼......
参数上有const就能让函数外面放心?函数外如何能知道函数内有没有把这个指针再赋值给一个非const变量
参数上的const对接口使用者来说完全是无意义的信息
【 在 comus 的大作中提到: 】
: 我感觉老外肯定是看了函数实现,发现path并没有做++操作,所以说要加第二个const。
: 的确像你说得,一个是增加可读性,让函数外面知道path在内部没有做++操作,不会导致异常(比如外面是一个int [10]数组,传了第[9]到函数里,函数不会++指向非法得[10]),另一方面就是让维护的人修改函数实现的时候不要添加++操作,如果要++操作编译器会提示,从而让程序员认真
: 考虑。
: ...................
--
修改:xshoushoux FROM 58.35.30.*
FROM 58.35.30.*
这个主题说的不是第二个const吗?你究竟知不知道自己在说什么。。。
【 在 comus 的大作中提到: 】
: 如果用的c/c++做开发,不做参数const检查那太可怕了,除非你们都是值传递,不涉及指针,不用引用。
: 比如一个系统的全局参数,要作为只读参数用引用的方式传到不同函数里,怎么保证不同函数里不修改这个全局参数?只能加const吧。有工程师不小心在函数里把全局参数改了咋办,怎么查?
--
修改:xshoushoux FROM 58.35.30.*
FROM 58.35.30.*
这个主题贴从头到尾只在讨论第二个const吧
【 在 comus 的大作中提到: 】
: 函数里你咋把两const的指针传给其他可修改的指针变量?要不要加强制转换,如果这个工程师问都不问,想都不想就直接把两const的指针转成可修改的指针,然后去修改其中的值,那这个工程师就可以开除了吧。而且这样的问题一review就发现了。
--
FROM 58.35.30.*
我说的就是绝大部分公司/项目是不会去检查参数加不加第二个const的
因为这根本没什么收益
【 在 comus 的大作中提到: 】
: 我回复你自己说的代码不加const检查好吧。
--
修改:xshoushoux FROM 58.35.30.*
FROM 58.35.30.*
我说的是第二个const
这个主题帖里第一个const根本没有讨论的必要,默认肯定说的就是第二个const
【 在 comus 的大作中提到: 】
: 那你为啥说: “绝大部分公司/项目都不会去检查函数参数加不加const,收益极小,只会让代码变的啰嗦”
: 我回复的是你这个问题。你是不是觉得第一个const,第二个const检查在lint里可以分开配置?
--
FROM 58.35.30.*
你说的世界上许多人真的不知道是在哪里
已经跟你说的很明白了,绝大部分公司/项目都不要求指针参数写第二个const,你去看看C标准库,看看linux kernel,你究竟在自high个啥啊
【 在 comus 的大作中提到: 】
: 我也是感觉你比世界上许多人都厉害。我甘拜下风。
--
FROM 58.35.30.*
一直在演进加东西的好吗
绝大多数新项目也不要求写第二个const
要求写第二个const,就相当于要求把
double sqrt(double n)
改成
double sqrt(const double n)
除了增加接口声明的噪声,真没有什么意义
【 在 comus 的大作中提到: 】
: C标准库,linux kernel有多老你知道吗?
: 好吧,你两都比别人强。
: 不和你们较劲了,为个const累死给人。
: ...................
--
修改:xshoushoux FROM 58.35.30.*
FROM 58.35.30.*
是的,而且他还特别自信
【 在 fanci 的大作中提到: 】
: 槽多无口
--
修改:xshoushoux FROM 124.79.95.*
FROM 124.79.95.*