/*/ comment here
do some thing.
/*/
do some thing.
//*/
为什么人们会写出这样的代码?这是一种好的实践方式吗?
/*/ comment here
do some thing.
/*/
do some thing.
//*/
这通常只在测试时暂时使用。也就是说,您不应该将这样的代码提交到版本控制中,因为它可能会造成混淆。
例如,如果您正在测试两种不同的计算方法,可以使用此方法在它们之间切换。个人而言,我很少这样做,甚至从未尝试过。
对于那些不知道的人,您可以通过添加一个正斜杠来在两个代码段之间切换:
/*/ comment here
do some thing.
/*/
do some thing else.
//*/
//*/ comment here
do some thing.
/*/
do some thing else.
//*/
糟糕的做法。在任何生产质量的代码中,都不应出现无用代码。如果旧的、无用的代码确实适用于某些情况,则应将其重构为可使用配置开启/关闭的代码,而不是重新编译。
我宁愿做
#ifdef DOIT_ONE_WAY
do one way
#else
do another way
#endif
但这只是个人口味问题
这让我感到困惑,需要花费时间来解析,所以我不认为这是一个好的实践。
我认为,Kane的回答中提到的任何切换的便利性都不值得。开发者浏览器应该负责处理注释的便利性。
对我来说,这只是令人困惑的,绝对不是标准。
这很令人困惑,也缺乏编程美学。一个好的方法是使用C预处理器,并像下面这样编码:
#if 0
code block disabled
#endif
code block enabled
我认为Arkadiy提到的这种方法和#ifdef方法都不好,因为在多文件搜索“do something”时,代码看起来像是实时的,但根据前面的行可能并不是。
如果代码有效,则#ifdef平台依赖性肯定会这样做,
但如果只是测试代码等,我更喜欢突出显示所有内容并插入C++ //注释,在VisualStudio中为Ctrl-K,C
这只是在两个代码块之间轻松切换的简单方法(正如Kane Wallmann所说)。
在生产代码中留下它可能并不好(只需将其删除并从源代码控制获取即可),但在开发过程中,这是一个方便的方式,可以快速切换两种实现(或存根一些代码等)。
并不一定是不好的实践,但是你需要预料到读者对你的代码会有不同的反应。例如,我认为这很酷,但我永远不会将这样的代码提交到代码库中。