- 主题:有个老外code review不让过
搞两个const来声明一个变量的代码,很少见啊。
虽然说法没错,但是太啰嗦了,代码里到处是这种双const的话,扎眼
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*
我知道意义不同啊,所以说review人说的是对的
但是搞法啰嗦,不值得推广(除非是写航天器之类的代码的?)。公司里如果有强制规定这么搞,那就老老实实按规定来呗
如果不是强制规定,那就商量,或者PK,看谁更强势了
【 在 hongyan2022 的大作中提到: 】
: 这两个的 意义不同啊
:
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*
不是对code review这个活动抵触,而是style的问题
我觉得这种双const的style是属于政zhi上正确,但是不值得提倡的,除非是写一些要求极为严格的产品(通常是拿造原子弹来比拟)
从另外一个角度喷,可以喷C的设计不好,把下面三种情况分开表达,可能更好,而不是统一弄个const来表达:
仅仅指针不能改、仅仅指针指向的数据不能改、指针不能改而且指针指向的数据也不能改
【 在 Brightblade9 的大作中提到: 】
: 你们对code review这么抵触吗。。。我遇到这种情况一般就点个like然后顺手改了就完了。。。
:
: - 来自 水木社区APP v3.5.7
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*
pclint的规则是可以定制的,不是所有的公司都用一套规则
【 在 comus 的大作中提到: 】
: 加这个是为了防止潜在的被修改带来的风险,如果有这样的问题出现够喝一壶的。
: 有空看看什么是pclint什么是代码静态检查,这么提根本不是啥style的问题。老外的意见就是修复在静态检查中出的一个警告。
: 另外前面拿strcpy说事的,不知道还有strncpy这样的函数嘛? 为啥有各种各样的代替strcpy的函数,就是因为strcpy各种不安全。
--
FROM 221.218.163.*
有几家搞双const的,可以发个帖子统计一下
我是受不了双const的,一般赶紧改用c++的const &了,绕开指针
人生苦短,码农的生涯周期短,赶紧用C++(带类的C)吧,不用异常,不用虚函数,不用模板,也比C好用得多
当然,这个前提是你有权力选择用C还是C++
【 在 comus 的大作中提到: 】
: 是可以定制啊,但如果基本的const检查都不添加,那要lint有何意义?
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*
两边摩擦系数都不一样吧
【 在 fanci 的大作中提到: 】
: 真的不能反用吗?没试过纯好奇。
--
FROM 221.218.163.*
运行期能否更改,只取决于:
1、存储区域对应的物理介质是否允许更改。如果加的有物理锁,比如ROM或者带只读锁的U盘,是改不了的。
2、对存储区域的权限控制。
这些都超出编译器的控制了。编译器能干的,只有const变量属性,外加某个data section的read-only初始属性(运行期也可以改的。比如在Windows上一个VirtualProtect API就改了)
【 在 freyoneby 的大作中提到: 】
: 那有什么办法定义数据是运行期常量
--
修改:z16166 FROM 221.218.163.*
FROM 221.218.163.*
PE/ELF的某个data section是可以由linker设置为read-only的,这样OS的loader在map这个section时是可以设置内存页面为只读的。但进程内可以随便改,因为有权限改。
【 在 freyoneby 的大作中提到: 】
: 我想问的是const会影响mmu的page entry 吗,字符串产量应该是page entry只读的?为什么字符串常量是运行期
--
FROM 222.129.204.*