我可以选择调用
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
。