尝试在MinGW中构建+运行这个简单的C程序会产生奇怪的结果
#include <stdio.h>
void main() {
printf("%03d", 7);
};
如果我使用任何标准C合规性标志(-std=c89/99/11
)构建它,则忽略填充:
C:\>gcc -std=c11 a.c
C:\>a
7
在常规GNU C模式下,它可以正常工作:
C:\>gcc a.c
C:\>a
007
这是MinGW中的错误吗?我错过了什么吗?或者填充说明符真的不是标准的C功能吗?
供参考,here是我系统上gcc -v
的输出。
正如2501所建议的,最好的解决方法是使用 MinGW-W64 ,这实际上是与MinGW分开的项目。它仍然可以生成32位二进制文件,尽管&#34; W64&#34;标签