stdarg宏: 可變參數列表是通過宏來實現的,這些宏定義于stdarg.h頭文件,它是標準庫的一部分。 這個頭文件聲明的一個va_list的類型,和三個宏va_start,va_arg,va_end。我們可以生明一個va_list類型的變量,配合三個宏使用。 va_start(arg, last have name arg); 初始化之后,arg將指向第一個無名參數。 va_arg(arg, next arg type); va_arg將會返回當前的arg的va_list變量所指向的無名變量。并使它指向下一個無名變量。 注意,當訪問所有變量之后記得調用va_end(arg); 來釋放這個va_list類型的變量。
#include<stdarg.h>int nsum(int n,...){ va_list num; // va_list 是一個宏定義類型 int sum=0; va_start(num,n); //開始取參,是num指向第一個參數 for(;n>1;n--) { sum += va_arg(num,int); // 這個函數返回當前指向的參數,并指向下一個參數 } va_end(num); //用完釋放 return sum;}新聞熱點
疑難解答