首选块注释/ /临时注释多行c++代码,它可跨任意行、不干扰语法结构,但不可嵌套;需严格配对,避免漏斜杠或误注字符串/预处理指令。

用 /* */ 包裹多行代码最安全
临时注释一段 C++ 代码,首选块注释 /* */。它能跨任意行、无视缩进、不干扰语法结构,连函数定义、类声明、宏展开内部都能直接包住。
常见错误是只写 /* 没配对 */,导致编译器报错 error: expected '}' before end of input 或整段后续代码变灰(IDE 误判为注释中)。
- 把光标放在要注释的代码开头,输入
/* - 移到末尾,在最后一行末尾输入
*/(别漏掉斜杠) - 注意:不能嵌套,
/* /* inner */ */是非法的 - 如果代码里本身有
*/字符串,比如std::string s = "end*/";,仍可安全注释——字符串字面量不受影响
别用 // 逐行注释大段代码
// 看似方便,但手动加几十行太容易漏、错位或忘删;而且一旦中间有预处理指令(如 #ifdef),// 会失效——因为 # 行必须独占一行,加了 // 后预处理器直接忽略整行。
例如这段本意是禁用某段条件编译:
#ifdef DEBUG
log("start");
do_work();
#endif
如果改成:
// #ifdef DEBUG
// log("start");
// do_work();
// #endif
看起来注释了,但实际 #ifdef 已被 // 吞掉,预处理器根本看不到它,DEBUG 宏是否定义完全没生效——这比没注释还危险。
编辑器快捷键不是万能的,得看上下文
VS Code、CLion、Visual Studio 都支持选中后 Ctrl+/ 切换行注释,但它们默认只插 //。对纯 C++ 逻辑块没问题,遇到以下情况会出问题:
- 选中含
/*或*/的代码,快捷键可能生成非法嵌套(如// /* old */) - 选中跨函数或跨命名空间的代码,
//注释后可能让花括号配对错乱,引发error: expected unqualified-id - 部分编辑器在头文件里对
template或constexpr复杂声明用//注释后,语义分析可能异常
建议:只对连续几行简单语句用快捷键;超过 5 行、含宏/模板/预处理的,手动敲 /* */ 更稳。
临时注释后一定要验证是否真“失效”
很多人注释完就编译运行,结果发现行为没变——其实是注释位置不对,或者代码被其他路径执行了。比如:
- 注释的是 .cpp 里的调用,但实际走的是头文件里 inline 实现
- 注释的是旧分支代码,而
if (flag)条件恒为 false,根本没进这段 - 用了
/* */但结尾多打了一个/,变成*/ /,导致注释没闭合
最简单的验证方式:在被注释代码中间加一行明显报错,比如 int /* test */ =; —— 如果编译仍通过,说明这段根本没被编译器读到,注释可能包错了范围,或者文件压根没参与构建。
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











