常识小站
第二套高阶模板 · 更大气的阅读体验

编译错误?可能是注释符号用错了

发布时间:2025-12-09 08:08:33 阅读:263 次

写代码时,注释是家常便饭。但有时候一个看似不起眼的注释符号,却能让编译器“发疯”,报出一堆看不懂的错误。很多人第一反应是语法写错了、括号没闭合,折腾半天才发现——原来是注释符号搞的鬼。

常见的注释符号长什么样

不同编程语言用的注释方式不一样。比如 C、C++、Java 里,单行注释用 //,多行注释用 /* */

// 这是一条单行注释

/*
这是多行注释的第一行
这是第二行
*/

而 Python 就简单点,只用 #

# 这是 Python 的注释

JavaScript 和 CSS 则和 C 系列一样,用 ///* */。要是你在 JavaScript 文件里误用了 #,那基本就等着报错吧。

嵌套注释引发的“血案”

最坑的一种情况是多行注释嵌套。看下面这段 C++ 代码:

/*
这是外层注释开始
    /* 这是内层注释 */
外层注释结束
*/

看起来没问题?其实不行。C/C++ 不支持嵌套多行注释。第一个 /* 遇到第一个 */ 就结束了,后面的代码会被当作正常代码处理,很可能直接导致语法错误,编译器还报一堆莫名其妙的错,比如“未定义标识符”或者“表达式语法错误”。

复制粘贴带来的隐藏雷区

有时候你从网上抄了一段代码,顺手加个注释说明来源,结果一编译就炸。原因可能是那段代码本身夹带了未闭合的注释。比如:

printf("Hello World");
/* 忘记闭合这个注释

你再在后面写新代码,全都被当成注释内容,直到遇到下一个 */。这种问题在大型文件里特别难查,尤其是别人写的旧代码。

别拿注释当“删除代码”的工具

有些程序员懒得删代码,就用注释包起来,过几天再打开继续改。但如果里面本身就包含 /* */,那就危险了。比如:

/*
旧代码开始
    printf("old code\n");
    /* 已经被注释的部分 */
旧代码结束
*/

这又触发了嵌套问题,结果整个逻辑乱套。这时候要么改用单行注释逐行注掉,要么干脆删干净。

怎么避免这类问题

最简单的办法是:编辑器选个带语法高亮的。颜色不对劲,立马就能发现注释没闭合。另外,写多行注释时养成习惯,先写 /* */ 框架,再往中间填内容,避免漏掉闭合符号。

还有一个小技巧:现代 IDE 一般支持快捷键一键注释/取消注释,比如 Ctrl+/,用这个比手动敲符号靠谱多了。

别小看这些细节,一个漏掉的星号或斜杠,可能让你多花半小时查错。写代码不是炫技,稳一点,反而更快。