C 中的参数列表:increment/decrement va_arg?
Argument list in C: increment/decrement va_arg?
我在参数列表中调用 va_arg 时试图访问下一个或上一个元素。 "n"实际上是参数列表的长度。
va_list pointer;
va_start(pointer, n);
int temp = va_arg(pointer, int);
...
if(temp < va_arg(pointer, int))...
...
void va_end(va_list pointer)
实际上可以交换参数列表的两个位置吗?
就像在冒泡排序中交换两个整数一样。
你从 va_*
"functions" 得到的 "list" (它们通常作为预处理器宏实现)是堆栈的一部分,作为一个真正的堆栈你只能"pop" 它的值。
所以不,你不能 "swap" 值,或者倒退。你甚至不能 "push" 值,只有 "pop".
如果要交换值,则必须将两个值都放入变量中,然后交换这些变量的值。
我在参数列表中调用 va_arg 时试图访问下一个或上一个元素。 "n"实际上是参数列表的长度。
va_list pointer;
va_start(pointer, n);
int temp = va_arg(pointer, int);
...
if(temp < va_arg(pointer, int))...
...
void va_end(va_list pointer)
实际上可以交换参数列表的两个位置吗? 就像在冒泡排序中交换两个整数一样。
你从 va_*
"functions" 得到的 "list" (它们通常作为预处理器宏实现)是堆栈的一部分,作为一个真正的堆栈你只能"pop" 它的值。
所以不,你不能 "swap" 值,或者倒退。你甚至不能 "push" 值,只有 "pop".
如果要交换值,则必须将两个值都放入变量中,然后交换这些变量的值。