va_arg() - C函數
C庫宏 type va_arg(va_list ap, type) 的 ap 檢索下一個參數函數型的參數列表。這並不確定是否檢索的參數是最後一個參數傳遞給函數。
聲明
以下是聲明va_arg()宏。
type va_arg(va_list ap, type)
參數
-
ap -- 這是額外的參數檢索狀態信息 va_list 類型的對象。這個對象應已初始化由初始調用,va_start 前第一次調用va_arg。
-
type -- 這是一個不同的名稱。此類型的名稱作為該宏展開的表達類型。
返回值
該宏返回下一個額外的參數作為一個表達式的類型類型。
例子
下麵的例子演示了如何使用 va_arg() 宏。
#include <stdarg.h> #include <stdio.h> int sum(int, ...); int main() { printf("Sum of 15 and 56 = %d ", sum(2, 15, 56) ); return 0; } int sum(int num_args, ...) { int val = 0; va_list ap; int i; va_start(ap, num_args); for(i = 0; i < num_args; i++) { val += va_arg(ap, int); } va_end(ap); return val; }
讓我們編譯和運行上麵的程序,這將產生以下結果:
Sum of 15 and 56 = 71