如何评论几行,里面有评论

pvi*_*nis 25 c c++ comments

我有这样的程序

int main(){ 

    char c;
    int i; /* counter */
    double d;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我要注释掉char,int和double,并且只返回未注释,我可以这样做吗?已经存在的评论会停止评论..是否有一种简单/快速的方式来评论出来?

Ste*_*end 78

int main(){ 
#if 0
    char c;
    int i; /* counter */
    double d;
#endif
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

不是严格意见,但效果是你想要的,它很容易恢复.

这也可以很好地扩展到更大的代码块,特别是如果你有一个可以匹配开头和结尾的编辑器#if..#endif.

  • +1 ...和"预处理器注释"(不像`/*...*/`)嵌套 (11认同)
  • ...除了'FALSE`不是标准的预定义宏之一,并且在某些条件下会导致某些编译器发出警告(例如,`-Wundef`在`gcc`下生效). (8认同)
  • #IF FALSE也是一个选项,更明确 (7认同)
  • 聪明,但我希望大家只使用它来快速调试然后撤消它.我讨厌像这样扫描代码. (2认同)

mlu*_*iak 12

int main(){ 

/*
    char c;
    int i; // counter
    double d;
*/
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • @ Steve的回答非常聪明,但我发现这是最常见的,最不可能让你的开发经理提问:) (4认同)
  • @KennyCason`#if 0`非常普遍并且被广泛理解,并且具有在C和C++中工作的额外好处. (4认同)

Bru*_*uno 5

如果您的编译器支持//注释表示法(在C中非标准,但非常普遍支持),请使用可以使用这些编辑器切换整行的编辑器.

  • `//`注释在标准C99编译器中可用:-) (2认同)

Jer*_*myP 5

在C99

int main(){ 

//    char c;
//    int i; /* counter */
//    double d;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)


Cli*_*ore 5

我偏爱:

int main(){ 

#ifdef USE_DISABLED_CODE
    char c;
    int i; /* counter */
    double d;
#endif

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用简洁的名称,如'CODE_REMOVED_FOR_TESTING_PURPOSES'或'REMOVED_FROM_E3_BUILD',并且不要定义它,并且您已经为自己留下了一个关于禁用代码的原因的简短评论(如果您在#的所有文件中执行查找,将显示该代码IFDEF).