【发布时间】:2019-09-19 15:09:28
【问题描述】:
我知道句号 . 符号精确地分隔字段宽度。但是,我不知道% 之后的零是如何出现的。每次我运行它都会显示相同的输出。
代码:
#include <stdio.h>
int main() { printf("%. %. %. "); return 0; }
输出: %.0 %.0 %.0
main.c:13:15: warning: unknown conversion type character 0x20 in format [-Wformat=]
main.c:13:18: warning: unknown conversion type character 0x20 in format [-Wformat=]
main.c:13:21: warning: unknown conversion type character 0x20 in format [-Wformat=]
【问题讨论】:
-
程序有未定义的行为。
-
不要忽略警告。这很可能是未定义的行为:您没有提供有效的转换字符。 0x20 是空格的十六进制值。
-
如果你提供了无效的格式说明符,你为什么会期望得到任何特定的结果?
-
鉴于
#include指令没有文件名,我预计会收到更多警告。 -
非常相似。 printf() with no arguments in C compiles fine. how? 的可能重复项