c-是否有一个涉及gcc的命令行来知道它正在使用哪个--std=xxx



我可以选择调用

gcc --std=c99 toto.c -o toto.elf

但在我的情况下,我想知道在调用时默认使用哪个--std

gcc toto.c -o toto.elf

关闭请求的注意事项: 我驳斥了这个主题是重复的想法,事实上,我想要的不仅是知道默认的--std是什么,还知道当前使用的是什么--std,以及如何区分std=gnu11和std=c11。当然,我的第一篇帖子是在误导人们

我找到了这个gcc -dM -E - < /dev/null | grep 'STDC_VERSION'

  • 5.0.0之前的所有版本都默认为-std=gnu90
  • 5.0.0和8.0.0之间的所有版本都默认使用-std=gnu11
  • 8.0.0之后的所有内容都默认为-std=gnu17

所以您只需要检查--version。然而,即使使用GNU扩展进行编译,__STDC_VERSION__也应该对应于-std=cxx

最新更新