1、使用以下三個函式可實現不定引數
#includevoid va_start(va_list ap, last);
type va_arg(va_list, type);
void va_end(va_list ap);
《1》、va_start
該函式用來初始化指標變數ap(va_list實際是void型別),之後處理引數就預設從ap開始處理。last一般為傳過來的引數列表的第乙個引數。
《2》、va_arg
該函式就是將ap指標按照type型別向後移動,然後返回ap所指的那個引數。
注意:type型別不能是float,其它不支援暫不知(測試過char ,int, short均可以)
《3》、va_end
和va_start配套使用,做善後。
#include#include //count 人為將引數個數傳遞進去
int test(int count, short first, ...)
va_end(argp);
return 0;
}int main()
2、可變引數巨集…和__va_args__
c99規範中新增的巨集
#define debug(format, ...) fprintf(stdout, format, __va_args__)
int test(int count, short first, ...)
va_end(argp);
return 0;
}
3、參考
《1》、
《2》、
8、
C 語言Pagerank兩種實現
最近正在學習hadoop相關的知識,參考了很多材料,如下是c 的兩種實現。目前對這個演算法只是知道了運算的過程和思路,理解的還不是太深刻,我看到論壇上很多朋友算的pr值超過1,總感覺是有問題,具體哪有問題反倒倒說不好了,請知曉的朋友幫忙分析下。附件是兩種實現方式,感興趣的朋友可以自行下來看看,有不對...
C語言不定引數
最近,遇到乙個c語言的不定引數問題。其實,對於c語言的不定引數問題,只需要三個函式就可以搞定了。這三個函式的標頭檔案是,其實下面的三個函式都是乙個巨集定義 macro 這三個函式是 void va start va list ap,last type va arg va list ap,type v...
C語言函式不定引數實現方式
函式如何實現不定引數 由於在c語言中沒有函式過載,解決不定數目函式引數問題變得比較麻煩,即使採用c 如果引數個數不能確定,也很難採用函式過載。對這種情況 提出了指標引數來解決問題。1 va list 定義了乙個指標arg ptr,用於指示可選的引數.2 va start arg ptr,argn 使...