C語言 標(biāo)準(zhǔn)庫 <stdarg.h>
c語言 標(biāo)準(zhǔn)庫 <stdarg.h>
stdarg.h 頭文件定義了一個(gè)變量類型 va_list 和三個(gè)宏,這三個(gè)宏可用于在參數(shù)個(gè)數(shù)未知(即參數(shù)個(gè)數(shù)可變)時(shí)獲取函數(shù)中的參數(shù)。
可變參數(shù)的函數(shù)通在參數(shù)列表的末尾是使用省略號(hào)(,...)定義的。
1. 庫變量
下面是頭文件 stdarg.h 中定義的變量類型:
序號(hào) | 變量 & 描述 |
---|---|
1 | va_list 這是一個(gè)適用于 va_start()、va_arg() 和 va_end() 這三個(gè)宏存儲(chǔ)信息的類型。 |
2. 庫宏
下面是頭文件 stdarg.h 中定義的宏:
序號(hào) | 宏 & 描述 |
---|---|
1 | void va_start(va_list ap, last_arg) 這個(gè)宏初始化 ap 變量,它與 va_arg 和 va_end 宏是一起使用的。last_arg 是最后一個(gè)傳遞給函數(shù)的已知的固定參數(shù),即省略號(hào)之前的參數(shù)。 |
2 | type va_arg(va_list ap, type) 這個(gè)宏檢索函數(shù)參數(shù)列表中類型為 type 的下一個(gè)參數(shù)。 |
3 | void va_end(va_list ap) 這個(gè)宏允許使用了 va-start 宏的帶有可變參數(shù)的函數(shù)返回。如果在從函數(shù)返回之前沒有調(diào)用 va_end,則結(jié)果為未定義。 |