全稱:standard arguments
成員: va_list :用來定義va變數,如va_list va。
va_start():使用方法:va_start(va,n) 其中va為va_list 定義的變數,n為引數個數。
va_arg() :使用方法:va_arg(va,type) 其中va為va_list 定義的變數,type為引數的型別,如int char等。
va_end() :使用方法:在後面用va_end(va)來釋放空間。
例子:
#include
#include
intsum0
(int n,..
.);//功能:求和。 n表示總共有幾個引數
intsum0
(int n,..
.)va_end
(va)
;return sum;
}int
main()
stdarg h編寫可變引數函式
一.起因 起因是自己想寫乙個簡單的列印日誌的函式,最大的問題是,每次列印的時候輸入資料的個數是不同的。最開始的想法是用巨集,這樣就不管輸入引數多少了,但是用巨集的話就沒辦法判斷輸入引數的型別了。所以就想使用可變引數來實現,那麼問題來了,我首先得學學怎麼寫可變引數函式。吶,stdarg.h可以幫助我。...
C語言 使用stdarg h實現函式可變引數
本文有部分的理解借鑑於 首先引入標頭檔案 include需要可變的引數列表要用 來代替。例如 int add int num,int num2,在stdarg.h標頭檔案中定義了va list型別,用於遍歷引數列表的引數。void va start va list ap,last 該函式用於初始化v...
可變參函式(my printf可變參函式的實現)
可變參函式 其引數列表的引數型別與個數可變,採用ansi標準形式時,引數個數可變的函式的原型宣告是 type funcname type para1,type para2,至少需要乙個普通的形式引數,後面的省略號不表示省略,而是函式原型的一部分,為引數佔位符,type是函式返回值和形式引數的型別 可...