使用c89 / c99 / c11忽略MinGW printf填充

时间:2016-07-19 12:50:04

标签: c gcc printf mingw

尝试在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;标签

0 个答案:

没有答案