我正在使用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
为什么?
答案 0 :(得分:67)
//
条评论,使用/**/
(或删除-ansi
,这是C89标准的同义词)
答案 1 :(得分:23)
请参阅GNU编译器文档中的C++ comments。
在GNU C中,您可以使用以
//
开头的C ++样式注释,并一直持续到行尾。许多其他C实现允许这样的评论,它们包含在1999 C标准中。但是,如果指定-std
选项在C99
之前指定ISO C的版本,或-ansi
(相当于-std=c89
),则无法识别C ++样式注释。
(重点是我的,因为有些帖子声称标准C中不允许//
,而对于99之前的标准,这只是正确的。)