天天看點

iOS可變參數定義以及調用

可變長參數:顧名思義,就是函數的參數長度(數量)是可變的。比如c語言的printf系列的(格式化輸入輸出等)函數,都是參數可變的。下面是printf函數的聲明:

int printf(const char *format, …);

可變參數函數聲明方式都是類似的

<a></a>

objc中沒有提供直接的變長參數方法,需要使用c标準庫中得av_list方法,使用簡單:

c語言可變參數通過三個宏(va_start、va_end、va_arg)和一個類型(va_list)實作的。

具體的參數含義為:

va_list : 定義一個指向個數可變的參數清單指針,存儲參數的類型資訊。

void va_start(va_list ap, paramn) :

參數:

ap: 可變參數清單位址

paramn: 确定的參數

功能:初始化可變參數清單(把函數在paramn之後的參數位址放到ap中)。

void va_end(va_list ap) :

功能: 關閉初始化清單(将ap置空)

type va_arg(va_list ap, type) :

功能: 傳回下一個參數的值

類似格式化輸出的示例

調用這個方法以及輸出的結果為:

類似sql語句指派的示例

繼續閱讀