如何检查是否使用了c99,而不是gnu99

Jér*_*ôme 1 gcc gnu c99

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

我找到:

#if __STDC_VERSION__ >= 199901L
Run Code Online (Sandbox Code Playgroud)

但是这个测试适用于c99和gnu99.

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

Pau*_*l R 5

你可以自己检查一下:

$ 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                     <
Run Code Online (Sandbox Code Playgroud)

  • `__STRICT_ANSI__`就是那个. (2认同)