【发布时间】:2014-01-14 19:28:37
【问题描述】:
所以 printf() 是一个函数,如果成功则返回写入的字符数,如果发生错误则返回负值,查看此示例,预期的输出为 零。 p>
#include <stdio.h>
int main(void)
{
printf("%d");
return 0;
}
现在当我添加更多这些 %d 时:http://ideone.com/brw5vG 输出变为: 0 134513819 -1216430092 134513808
我无法弄清楚随机垃圾值是怎么回事?输出中也有一个负值,负值证明错误是正确的,那么任何人都可以准确指出这里的错误是什么? 请简明扼要。谢谢。
【问题讨论】:
-
你从来没有真正检查过
printf的返回值。 -
printf的返回值与其应写入标准输出的值之间存在巨大差异。两种完全不同的东西。 -
@remyabel:这不是问题所在。
-
@remyabel:没有人这样做,而且我想不出任何可以在这里发挥作用的实现。
-
大多数现代编译器都会对此代码发出警告。