这是一个好习惯吗?"/*/东西/*/东西//*/"

xer*_*nic 7 c c++ java comments coding-style

/*/ comment here
do some thing.
/*/
do some thing.
//*/
Run Code Online (Sandbox Code Playgroud)

为什么人们会这样编写代码?这是一个好习惯吗?

GMa*_*ckG 25

它通常仅用于暂时测试某些东西.也就是说,你永远不应该将这样的代码提交给版本控制,因为它可能会令人困惑.

例如,如果您正在测试两种不同的计算方法,则可以使用它们在它们之间切换.我个人很少这样做,如果有的话.


对于那些不知道的人,您可以通过添加一个正斜杠在两个代码部分之间切换:

/*/ comment here
do some thing.
/*/
do some thing else.
//*/

//*/ comment here
do some thing.
/*/
do some thing else.
//*/
Run Code Online (Sandbox Code Playgroud)

  • 但是,"永远不会提交代码......". (7认同)
  • 绝对不.即使对于你描述的内容,这也很糟糕. (5认同)
  • 然而,考虑到对各种块的易操作性或撤消性,这种风格更具永久性.在测试时,我更倾向于使用//在每一行上注释/取消注释整个块.一个好的IDE也应该让这个微不足道. (2认同)
  • 相当.要在两段代码之间切换,我使用#if 1 ... #else ... #endif.然后在1和0之间切换.我真的不需要我的语法高亮显示器来告诉我启用了哪个版本. (2认同)

tva*_*son 16

蹩脚的做法.死代码在任何生产质量代码中都没有任何业务.如果确实存在旧的死代码应用的情况,那么它应该被重构为可以使用配置而不是重新编译来打开/关闭的东西.


小智 15

我宁愿这样做

#ifdef DOIT_ONE_WAY
do one way
#else
do another way
#endif
Run Code Online (Sandbox Code Playgroud)

但这是一个品味问题

  • 即便这样也很糟糕.您应该在头文件中使用#if块来设置宏.然后代码使用宏(如函数)而不使用任何#if,以便真正的代码易于阅读.然后宏只处理实现细节. (2认同)