为什么我不能在我的C代码中使用//样式的注释?

时间:2010-02-08 17:33:44

标签: c

我正在使用gcc(Ubuntu 4.4.1-4ubuntu9)编译我正在编写的程序,但只要它在我的代码中看到//注释就会呕吐,说:

interface.c :##: error: expected expression before â/â token<

我使用的gcc编译模式是否禁止//评论?

$ gcc -g -ansi -pedantic interface.c structs.h -c -I. -I/home/me/project/h

为什么?

2 个答案:

答案 0 :(得分:67)

在旧的(前99版)C版本中不允许使用//条评论,使用/**/(或删除-ansi,这是C89标准的同义词)

答案 1 :(得分:23)

请参阅GNU编译器文档中的C++ comments

  

在GNU C中,您可以使用以//开头的C ++样式注释,并一直持续到行尾。许多其他C实现允许这样的评论,它们包含在1999 C标准中。但是,如果指定-std选项在C99之前指定ISO C的版本,或-ansi(相当于-std=c89),则无法识别C ++样式注释。

(重点是我的,因为有些帖子声称标准C中不允许//,而对于99之前的标准,这只是正确的。)