注释 / 编程语言 · 2023年 10月 18日 0

注释

89 次浏览

不同编程语言的注释不尽相同,有的用//, 有的用!, 有的用#, 各不相同。

不同形式的注释

  • !
    • Fortran
  • --
    • Ada
  • //
    • 最早BCPL,到C++/Java/C99, 基本所有C系编程语言都支持,JS也支持。
  • #
    • Shell和Python.
  • /* */
    • C系编程语言支持,JS也支持。
  • (* *)
    • Pascal.
  • Windows批处理注释采用REM或::或% <注释> %.

注释嵌套

  • C/C++/PHP 等都不支持多行注释嵌套,比如/* */, 嵌套并不会带来什么好处,反而带来更多复杂性。当编译器看到/*时认为是注释开始,又遇到了一个/*, 编译器是不是应该忽略它,应该不管忽略不忽略,从语法上都是注释...所以,编译器不如简单点,遇到/*后,就找下一个*/, 不管中间遇到什么都是注释的一部分。随着产生的问题是,/* /* */被认为的注释结束,后面再跟着 */就非法了。
  • Swift支持/* */嵌套,例如 /* comment /* nest comment */ */.

如何测试编译器是否支持嵌套注释?

  • C缺陷和陷阱 中提出了一个巧妙的方法:
    int i = /*/*/0*/**/1;
    如果i是0代表不支持,为1代表支持。
    • Go语言一样可以用如上赋值运算符右边的表达式来检查。

注释和最终生成文件

  • 一般而言,编译器会忽略注释,即不管代码中有多少注释,最终生成文件不会包含它。