Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何评论几行,里面有评论_C++_C_Comments - Fatal编程技术网

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

C++ 如何评论几行,里面有评论,c++,c,comments,C++,C,Comments,我有一个这样的程序 int main(){ char c; int i; /* counter */ double d; return 0; } 如果我想注释掉char、int和double,只需将return注释为uncommented,我可以这样做吗?已经存在的注释将停止该注释。。 有没有一种简单/快速的方法来评论这一点 int main(){ /* char c; int i; // counter double d; *

我有一个这样的程序

int main(){ 

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

    return 0;
}
如果我想注释掉char、int和double,只需将return注释为uncommented,我可以这样做吗?已经存在的注释将停止该注释。。 有没有一种简单/快速的方法来评论这一点

int main(){ 

/*
    char c;
    int i; // counter
    double d;
*/
    return 0;
}
严格来说不是评论,但效果是你想要的,很容易恢复


这也可以很好地扩展到更大的代码块,特别是如果您有一个编辑器,可以匹配
\if..\endif

的开头和结尾,如果您的编译器支持注释的
/
符号(在C中是非标准的,但非常普遍支持),在C99中,使用一个编辑器,可以用这些命令切换整个行块。

int main(){ 

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

    return 0;
}

有许多编辑器/IDE支持使用热键进行注释/取消注释。这是一个非常有用的特性。 在Kate/KDevelop中,热键是Ctrl+D

这一点(以及支持此功能的其他IDE)也在讨论中进行了描述。

我倾向于:

int main(){ 

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

    return 0;
}

使用一个简洁的名称,如“CODE_REMOVED_FOR_TESTING_Purpose”或“REMOVED_FROM_E3_BUILD”,不要对其进行定义,您已经为自己留下了一条简短的注释,说明为什么代码被禁用(如果您在所有文件中查找#ifdef),它将显示出来)。

一般来说,我会在行尾使用/作为一行注释。因此,它将是
//counter
,您可以轻松地将块包装在
/*…*/
/
注释中,这些注释在标准C99编译器中可用:-)事实上,这取决于使用的是哪种风格的C;-)+1.“预处理器注释”(不同于
/*…*/
)嵌套#IF FALSE也是一个选项,并且更明确……除了
FALSE
不是标准预定义宏之一,并且在某些条件下(例如,
-Wundef
gcc
下生效)会导致一些编译器发出警告。聪明,但我希望人们只使用它来快速调试某些东西,然后撤销它。我不喜欢这样扫描代码。@Meryln:除非有人这样做#DEFINE FALSETRUE@Steve他的回答很聪明,但我发现这是最常见的,也是最不可能离开你的开发经理的问题:)我不想改变从/**////我写Linux内核的评论。@ KynasCon代码“>0”是非常普遍和广泛理解的,并且在C和C++中都有额外的好处。我会记下来的。我只是以前没见过它被使用:)@KennyCason,你通常不会在经过审查和发布的代码中看到它,因为留下孤立的代码块是不好的做法。但这是一种常见的编码技术,我最近(2010年)从大约30个文件中删除了#ifdef POST_JUNE_开发块。现在没有人知道讨论的是哪一年(可能是1994年左右,但可能比那一年更久;我们当时改变了CM系统,因此失去了更古老的历史),更不用说计划中的“6月后开发”将是什么了。您可能至少应该在一个地方记录define的含义。我在权衡各种方法时会用到它。我试着用一个短语来描述block的意思,而不是像
POST\u JUNE\u DEVELOPMENT
那样含糊不清的东西。我知道几年后我会再次看到这段代码,想知道琼是谁,她担任什么职位,或者为什么她的离开会让事情发展起来
int main(){ 

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

    return 0;
}