【发布时间】:2011-12-28 12:56:30
【问题描述】:
我想在编译过程中添加一条警告消息,警告用户应该使用 gnu99 而不是 c99(我使用的是匿名结构,而且在 c99 中似乎根本不存在)。
我发现:
#if __STDC_VERSION__ >= 199901L
但是这个测试对于 c99 和 gnu99 是正确的。
我可以使用哪个预定义的宏?
【问题讨论】:
我想在编译过程中添加一条警告消息,警告用户应该使用 gnu99 而不是 c99(我使用的是匿名结构,而且在 c99 中似乎根本不存在)。
我发现:
#if __STDC_VERSION__ >= 199901L
但是这个测试对于 c99 和 gnu99 是正确的。
我可以使用哪个预定义的宏?
【问题讨论】:
您可以自己检查:
$ 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 <
【讨论】:
__STRICT_ANSI__ 就是那个。