基本語法
/* 這是一行註釋 */
/*
這是多行註釋
可以跨越任意行
編譯器會完全忽略其中內容
*/
核心規則
- 不嵌套:
/* 外層 /* 內層 */ 外層繼續 */ → 內層 */ 結束整個註釋,導致後續代碼被誤吞或語法錯誤。禁用代碼塊時請用 #if 0 ... #endif。
- 可出現於任意位置:語句間、語句內、函數參數列表中、預處理指令中(但預處理器不處理註釋內容)。
- 不佔用運行時內存/時間:編譯預處理階段被剝離,目標文件無痕跡。
常見用途
| 場景 | 示例 |
| 功能說明 | /* 計算兩數最大值 */ |
| 參數/返回值文檔 | /* @param n 非負整數 @return n! */ |
| 暫時禁用代碼 | /* printf("debug: %d\n", x); */ (小片段) |
| 大塊代碼隔離 | #if 0\n ... 代碼 ...\n#endif (推薦,支持嵌套) |
| 版權/授權頭 | /* Copyright (C) 2024 ... */ |
文檔生成工具支持
- Doxygen:識別
/** ... */ (雙星號開頭) 及 @param、@return、@brief 等標簽,生成 HTML/PDF/API 文檔。
- KDoc / JSDoc 風格:類似標簽體系。
單行註釋 // 對比
//:C99 標準,到行尾結束,適合短註釋、行尾說明。
/* */:C89 兼容,跨行、嵌入語句中、文檔生成首選。