c – 适用于Windows的MinGW编译器,使用GCC,C99和GNU99

我正在使用适用于Windows的MinGW编译器.我在C中制作了一些程序.我读到的大部分文章似乎都已经过时了……最后我读到C99在GCC中是不完整的,这仍然是真的吗?我真正的问题是设置C99和GNU99之间的跨平台兼容性…我应该避免使用GNU99设置和它的扩展,只是坚持使用C99?我是这个MinGW编译器集的新手,因为我一直使用Visual Studio并决定尝试新的东西……现在我正在使用这些设置编译…

-march=native -O3 -std=gnu99

是否有任何推荐的编译器命令我应该输入用于制作C程序以及用这个编译器制作C程序?

我想制作一个与Windows,Mac和Mac兼容的简单程序. Linux但首先是大多数Windows.

解决方法:

关于C,Visual Studio until recently不支持C99 at all.

关于gcc,你可以找到一个详细的detailed writeup,它们支持哪个标准以及所涉及的角落和缝隙.他们也有一个很好的list of extensions支持他们.您需要对gcc和扩展稍微小心,因为只指定要使用哪个标准不足以在使用扩展时生成警告或错误.例如,您可能会惊讶于使用:

gcc -std=c90 -W -Wall

允许您在没有警告的情况下使用variable length arrays.为了生成警告,您需要添加-pedantic:

gcc -std=c90 -W -Wall -pedantic

然后这将产生类似于此的警告:

warning: ISO C90 forbids variable length array ‘array’ [-Wvla]
上一篇:c – 以最快的方式获取整数位集中前导1的位置?


下一篇:C++之 ostream详细用法