C庫宏 type va_arg(va_list ap, type) 的 ap 檢索下一個(gè)參數(shù)函數(shù)型的參數(shù)列表。這并不確定是否檢索的參數(shù)是最后一個(gè)參數(shù)傳遞給函數(shù)。
以下是聲明va_arg()宏。
type va_arg(va_list ap, type)
ap -- 這是額外的參數(shù)檢索狀態(tài)信息 va_list 類型的對(duì)象。這個(gè)對(duì)象應(yīng)已初始化由初始調(diào)用,va_start 前第一次調(diào)用va_arg。
type -- 這是一個(gè)不同的名稱。此類型的名稱作為該宏展開的表達(dá)類型。
該宏返回下一個(gè)額外的參數(shù)作為一個(gè)表達(dá)式的類型類型。
下面的例子演示了如何使用 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; }
讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
Sum of 15 and 56 = 71