如何使GCC能够处理双斜线注释(C++风格注释)?

来源:互联网 发布:java canvas类 编辑:程序博客网 时间:2024/06/15 23:18

近日在处理一第三方代码时发现,gcc编译器不能够正确处理双斜线注释(//)。在查阅一些资料后,发现gcc使用不同的C标准将决定其是否能够正确处理双斜线注释。

因为makefile中在CFLAGS中加入了-ansi开关,而-ansi与-std=c89是等同的,遵循C89规范,不能够处理双斜线注释。有一些文章中提到在gcc后加入-Wp,-lang-c-c++-comments可以解决此问题,但实际上,此选项在gcc 2.x版本后早已过时不用。因此恰当的解决方法是将-ansi改为-std=gnu89(注意不是c89),gnu89相当于c89加上一些gcc的扩展功能,包括双斜线注释形式。另外,注意虽然写为-std=c99也可处理双斜线注释,但因为c99标准纳入了一些C++规范,与ansi区别较大,因此不推荐。