Here是varargs
的示例。
我有点困惑。
va_list ap;
va_arg (ap + (n-1), int); // **INCORRECT USAGE**
这是对的吗?如果没有,如何获得n th 参数?
ap
什么时候会增加? It says ap
会增加到下一个参数,但如果我使用va_arg(ap + (n-1), int), n>=2
,ap
会增加吗?
有时,我们宣称Cnt
缩写为Count
或Counter
。
ap
缩写为什么?
ap
?我知道它是va_list
类型,但是什么是va_list
?结构?诠释?或其他什么?
感谢。
答案 0 :(得分:6)
如果您想要第n个参数,则必须使用正确类型调用va_arg()
n-1次。
您的示例1和2是错误的。 ap
会自动更改va_arg()
。
va_list
的类型是实现定义的,但通常是char*
。