簡體   English   中英

C中的參數列表:遞增/遞減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)

實際上可以交換參數列表的兩個位置嗎? 就像在Bubblesort中交換兩個整數一樣。

va_* “函數”獲得的“列表”(它們通常實現為預處理器宏)是堆棧的一部分,而作為真正的堆棧,您只能“彈出”其值。

所以不,您不能“交換”值,也不能倒退。 您甚至無法“推送”值,只能“彈出”。

如果要交換值,則必須將兩個值都放入變量中,並交換這些變量的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM