91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

詳解可變參數列表

發布時間: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

万源市| 陇西县| 石景山区| 柳河县| 庄河市| 星座| 灵山县| 宜章县| 龙游县| 博客| 开远市| 东丽区| 沙雅县| 鸡西市| 陕西省| 密云县| 介休市| 武山县| 耒阳市| 施甸县| 邳州市| 古浪县| 额尔古纳市| 庄浪县| 武胜县| 榆中县| 博罗县| 灌阳县| 游戏| 富蕴县| 抚远县| 麻城市| 昭苏县| 吐鲁番市| 电白县| 阳新县| 吴忠市| 申扎县| 三河市| 略阳县| 桂阳县|