日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

va_list 简介

發(fā)布時間:2025/3/15 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 va_list 简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

va_list?簡介

(2011-04-16 10:31:17) 轉(zhuǎn)載▼
標簽:

雜談

分類:c/c 知識

va_list是一個宏,由va_start和va_end界定。

??? typedefchar* va_list;
  void va_start ( va_list ap, prev_param );
  type va_arg ( va_list ap, type );
  void va_end ( va_list ap );
??? 其中,va_list是一個字符指針,可以理解為指向當前參數(shù)的一個指針,取參必須通過這個指針進行。


???<Step 1> 在調(diào)用參數(shù)表之前,應(yīng)該定義一個 va_list類型的變量,以供后用(假設(shè)這個 va_list 類型變量被定義為ap);
???<Step 2> 然后對 ap進行初始化,讓它指向可變參數(shù)表里面的第一個參數(shù)。這是通過 va_start 來實現(xiàn)的,其第一個參數(shù)是 ap本身,第二個參數(shù)是在變參表前面緊挨著的一個變量;
???<Step 3> 然后是獲取參數(shù),調(diào)用 va_arg。它的第一個參數(shù)是ap,第二個參數(shù)是要獲取的參數(shù)的指定類型,并返回這個指定類型的值,同時把 ap 的位置指向變參表的下一個變量位置;
???<Step 4> 獲取所有的參數(shù)之后,我們有必要將這個 ap指針關(guān)掉,以免發(fā)生危險,方法是調(diào)用 va_end。它是將輸入的參數(shù) ap 置為NULL,應(yīng)該養(yǎng)成獲取完參數(shù)表之后關(guān)閉指針的習慣。

?

例子:

int max(int n, ...)??// 定參 n表示后面變參數(shù)量,定界用,輸入時切勿搞錯
{??????????????????
?va_listap;???????//定義一個 va_list 指針來訪問參數(shù)表
?va_start(ap,n);?????//初始化 ap,讓它指向第一個變參
?int maximum =-0x7FFFFFFF;???//這是一個最小的整數(shù)
?int temp;
?for(int i = 0; i < n; i++)
?{
??temp = va_arg(ap,int);???// 獲取一個int 型參數(shù),并且 ap 指向下一個參數(shù)
??if (maximum <temp)
???maximum =temp;
?}
?va_end(ap);???????//善后工作,關(guān)閉 ap
?return maximum;
}

// 在主函數(shù)中測試 max 函數(shù)的行為(C++ 格式)
int main()
{
?cout << max(3, 10,20, 30) << endl;
?cout << max(6, 20,40, 10, 50, 30, 40) << endl;
}

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的va_list 简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。