C語言 - 第二十九章 | 函式進階議題 - 不定長度引數(Variable-length argument)
不定長度引數(Variable-length argument
)
在定義函式時,有時無法事先得知要傳遞的參數個數,這邊介紹不定長度引數(Variable-length argument
)的使用,為了要使用不定長度引數,必須包含stdarg.h
標頭檔案。
1 |
不定長度引數使用幾個識別字來建立不定長度引數:
名稱 | 說明 |
---|---|
va_list | 一個特殊的型態(type),在 va_start、 va_arg 與 va_end 三個巨集(macro)中當作參數使用。 |
va_start | 啟始不定長度引數的巨集。 |
va_arg | 讀取不定長度引數的巨集。 |
va_end | 終止不定長度引數的巨集。 |
在宣告不定長度引數時,函式定義時要使用`...`表示將使用不定長度引數,而之前必須告知將傳遞幾個不定長度引數。
1 | void foo(int, ...); |
在使用va_arg
巨集取出引數內容時,必須指定將以何種資料型態取出。
1 | va_arg(num_list, double); |
範例
1 |
|
1 | // 結果 |