prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 15.1

Q我听说您必须#include <stdio.h>在调用printf。这是为什么?


A这样,一个合适的原型printf就会在范围内。

编译器可能会为接受可变长度参数列表的函数使用不同的调用序列。(如果使用可变长度参数列表的调用效率低于固定长度的调用,它可能会这样做。)因此,当调用 varargs 函数时,必须有一个原型(使用省略号表示法“...'', 表示参数列表是可变长度的)在范围内,以便编译器知道使用 varargs 调用机制。

参考:ISO Sec. 6.3.2.2, Sec. 7.1.7
Rationale Sec. 3.3.2.2, Sec. 4.1.6
H&S Sec. 9.2.4 pp. 268-9, Sec. 9.6 pp. 275-6


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管