printf()如何在其参数中没有变量列表的情况下工作?

时间:2015-08-05 13:25:23

标签: printf

以下代码:

bash

给出 200 ..... 100 作为输出。 有人可以解释如何在没有datalist的情况下使用printf

2 个答案:

答案 0 :(得分:1)

它在编译时提供警告(警告:格式参数太少),and is not documented,因此它是未定义的行为,不应使用。不同的编译器可能有不同的行为,行为甚至可能在同一编译器的版本之间发生变化。

请尝试在Wikipedia上阅读相关信息。

答案 1 :(得分:0)

这是堆栈中的一些垃圾值,因为您还没有提供任何整数参数。 printf()函数不知道没有参数存在,它将搜索相关的堆栈位置并打印出有的内容。正如Robadob的回答中所提到的,行为将根据编译器而改变。