在具有可变参数的函数中,我们使用函数 va_start() 初始化 va_list ,'ap' 类型的对象,如下所示:
void va_start(va_list ap, parmN);
我不明白
1.什么类型的对象可以作为 parMN(最后一个已知参数)传递。我已经完成了传递整数、带有格式说明符的字符串、结构等的示例。
2. parMN 如何描述以下可选参数。
C 标准说va_start() http://port70.net/~nsz/c/c11/n1570.html#7.16.1实际上是一个宏,而不是一个函数,因此它可以完成函数无法完成的事情。细节高度依赖于实现,但您可以想象它需要 parmN 的地址来确定下一个参数的堆栈地址。没有必要va_start()
了解以下参数的类型,因为该信息被传递到va_arg()
,这是另一个宏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)