因此printf()是一个函数,如果发生错误,它返回成功或负值时写入的字符数,看这个例子,预期的输出为零.
#include <stdio.h>
int main(void)
{
printf("%d");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在当我添加更多这些%d: http ://ideone.com/brw5vG输出更改为: 0 134513819 -1216430092 134513808
我无法弄清楚随机垃圾值是什么?输出中也有负值,负值可以证明错误是正确的,所以任何人都可以确切地指出这里的错误是什么吗?请简明扼要,具体.谢谢.
因为"%d"意味着整数是预期的.你没有传递任何东西,所以你得到了未定义的行为.
请注意,g ++ 4.8.2提供了一个有用的警告:
警告:格式'%d'需要匹配的'int'参数[-Wformat =]
类似于clang ++ 3.4:
警告:比数据参数更多'%'转换[-Wformat]