【问题标题】:How to check that c99 is used, and not gnu99如何检查是否使用了 c99,而不是 gnu99
【发布时间】:2011-12-28 12:56:30
【问题描述】:

我想在编译过程中添加一条警告消息,警告用户应该使用 gnu99 而不是 c99(我使用的是匿名结构,而且在 c99 中似乎根本不存在)。

我发现:

#if __STDC_VERSION__ >= 199901L

但是这个测试对于 c99 和 gnu99 是正确的。

我可以使用哪个预定义的宏?

【问题讨论】:

    标签: gcc gnu c99


    【解决方案1】:

    您可以自己检查:

    $ gcc -std=c99 -dM -E - < /dev/null > c99.txt
    $ gcc -std=gnu99 -dM -E - < /dev/null > gnu99.txt
    $ sdiff -s c99.txt gnu99.txt
    #define __STRICT_ANSI__ 1                     <
    

    【讨论】:

    • 谢谢!下次我会多玩gcc。
    • 没问题 - 我会给你一个更明确的答案,但我现在不在家,无法使用装有 gcc 的机器
    • __STRICT_ANSI__ 就是那个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多