亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解可變參數列表

發布時間:2020-07-10 20:06:17 來源:網絡 閱讀:386 作者:寫代碼好累 欄目:編程語言

經過一段時間的C語言學習,開始對printf函數產生了好奇,它可以接受不確定數目的參數。我們來看一下他的函數原型:   

       int printf(const char*format,...)

這個其實就是可變參數,我們來看看它的源代碼:

       

int printf(const char*format,...)
       {
          int res;
          va_list(arg);
          va_start(arg,format);
          res=vprintf(format,arg);
          va_end(arg);
          return res;
        }

其實他只是簡單的調用vprintf而已。

我們用一個簡單的例子來理解一下。

求平均數函數的實現。

int average(int val,...)
{
int i=0;
int sum=0;
va_list arg;     //這個就是 char*的意思
va_start(arg,val);
for(i=0;i<val;i++)
{
  sum+=va_arg(arg,int);
}
va_end(arg);
return sum/val;
}

函數中,va_arg(arg,int)的作用就是拿到下一個參數的值。



從函數的實現可以看到,我們使用可變參數應該有以下步驟:
1)首先在函數里定義一個va_list型的變量,這里是arg,這個變
量是指向參數的指針.
2)然后用va_start宏初始化變量arg,這個宏的第二個參數是第
一個可變參數的前一個參數,是一個固定的參數.
3)然后用va_arg返回可變的參數,并賦值. va_arg的第二個
參數是你要返回的參數的類型,這里是int型.
4)最后用va_end宏結束可變參數的獲取.然后你就可以在函數里使
用第二個參數了.如果函數有多個可變參數的,依次調用va_arg獲
取各個參數.

向AI問一下細節
推薦閱讀:
  1. wsdl詳解
  2. mysql 詳解

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

景谷| 三明市| 鲁山县| 罗城| 九寨沟县| 兴化市| 观塘区| 内黄县| 偏关县| 耿马| 灵宝市| 绥芬河市| 永昌县| 来凤县| 丹东市| 怀集县| 和政县| 阜城县| 福州市| 胶州市| 洪江市| 永川市| 九龙坡区| 丘北县| 合阳县| 靖远县| 北京市| 太保市| 疏勒县| 贵阳市| 高青县| 鸡东县| 博湖县| 来凤县| 中阳县| 乌鲁木齐县| 古蔺县| 洪湖市| 泾源县| 临海市| 纳雍县|