Cライブラリのマクロ - のva_start()
説明
Cライブラリマクロボイドのva_start(va_listのapに、last_arg)APが初期化された変数、それはのva_argとはva_endマクロ一緒に使用されています。関数に渡さlast_argは最後の既知の固定パラメータ、省略記号以前のパラメータです。
このマクロは、va_argのとはva_endを使用する前に呼び出されなければなりません。
声明
ここでのva_start()マクロ文です。
void va_start(va_list ap, last_arg);
パラメータ
- APは、 -それは、必要な情報を得るのva_argを介して追加のパラメータを格納するのに使用されるva_list型のオブジェクトです。
- last_arg -渡された固定パラメータ知ら最後の関数。
戻り値
NA
例
次の例は、のva_start()マクロ使用方法を示します。
#include<stdarg.h> #include<stdio.h> int sum(int, ...); int main(void) { printf("10、20 和 30 的和 = %d\n", sum(3, 10, 20, 30) ); printf("4、20、25 和 30 的和 = %d\n", sum(4, 4, 20, 25, 30) ); 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; }
それでは、以下になります上記のプログラムを、コンパイルして実行してみましょう:
10、20 和 30 的和 = 60 4、20、25 和 30 的和 = 79