文章出處

  顧名思義,可變參數函數就是參數數量可變的函數,即函數的參數數量是不確定的,比如方法getnumbertotal()我們即可以傳遞一個參數,也可以傳遞5個、6個參數

 1 #include <stdio.h>
 2 #include <stdarg.h>//實現可變參數需要的頭文件
 3 
 4 int getnumbertotal(int args,...){//可變參數要放在普通參數(args)的后面;...表示有很多個參數
 5     va_list l;//用來保存傳給函數的其他參數
 6     va_start(l,args);//表示可變參數的開始,即args參數之后的所有參數
 7     int i;
 8     int total=0;
 9     //逐一讀取可變參數
10     for(i=0;i<args;i++){
11         total+=va_arg(l,int);
12     }
13     va_end(l);//銷毀va_list
14     return total;
15 }
16 
17 int main(){
18     int result=getnumbertotal(3,11,15,9);
19     printf("total:%i\n",result);
20     result=getnumbertotal(2,11,9);
21     printf("total:%i\n",result);
22     result=getnumbertotal(5,11,9,5,13,7);
23     printf("total:%i\n",result);
24     return 0;
25 }

  使用可變參數必須注意的是: 必須包含一個普通參數

  我們可以給va_start()方法傳遞一個NULL,但是需要通過第一個參數知道可變參數的個數

  va_arg獲取可變參數的時候必須是對應的類型,否則將會出現不可預知的錯誤


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()