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

近日在处理一第三方代码时发现,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区别较大,因此不推荐。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值