使用注释解析问题://导致错误,而/ *则不会

时间:2017-08-22 16:14:47

标签: c

我正在处理大型项目并遇到此错误: error: expected expression before '/' token

尝试使用// ...在我的代码上注释掉一行时发生了这种情况。当我用/* ... */

替换它时,错误消失了

据我所知,两种评论格式都是合法的:

  

1除了字符常量,字符串文字或注释之外,字符/ *引入注释。检查此类注释的内容仅用于识别多字节字符并查找终止它的字符* .83)

     

2除了字符常量,字符串文字或注释之外,字符//引入的注释包括所有多字节字符,但不包括下一个换行符。检查此类注释的内容仅用于标识多字节字符并查找终止的换行符。

这是特定于平台的问题吗?

编辑:我的项目使用gnu compiler编译,并带有以下标志:-ansi -fno-zero-initialized-in-bss -Wall。用-ansi(或更新版本)替换-std=c99可以解决问题。

1 个答案:

答案 0 :(得分:4)

C99中引入了单行评论//。如果您正在使用GCC或Clang,请使用选项-std=c99-std=c11编译您的程序。

n1256-前言(第5页):

  

上一版的主要变化包括:
  [...]
    - //评论
  [...]