什么是C输出?

时间:2014-09-25 09:14:34

标签: c printf output

我在C中运行了以下代码段:

    printf("%%%\n");

我得到了输出“%”(没有引号)。有谁能解释究竟发生了什么? 为什么我们只有一个%的签到结果?

1 个答案:

答案 0 :(得分:4)

%%将打印%%\n不是有效的conversion specifier

您应该始终启用警告。请参阅以下内容:

 warning: unknown conversion type character 0xa in format [-Wformat=]
     printf("%\n");
                 ^

如评论中所述,这是undefined behavior,因为根据C11 standard,如果符合以下情况,则行为是未定义的行为:

  

- 找到无效的转换规范,格式为其中一个格式化输入/ ouptut函数[...]