stdarg.hの使用関数可変パラメータ
5727 ワード
全称:standard argumentsメンバー:va_list:va_などのva変数を定義するために使用されます.list va. va_start():使用方法:va_start(va,n)vaがva_であるlistで定義された変数、nはパラメータの個数です.va_Arg():使用方法:va_Arg(va,type)vaがva_listで定義された変数、typeはint charなどのパラメータのタイプです.va_end():使用方法:後でva_を使用end(va)は空間を解放する.
例:
例:
#include
#include
int sum0(int n, ...); // : 。 n
int sum0(int n, ...)
{
int i, sum = 0;
va_list va; //va_list
// printf("sizeof va: %d
",sizeof(va)) ;
va_start(va, n);
// printf("%d
",va_arg(va,int)); // , 。
// printf("%d
",va_arg(va,int)); // :va_arg() , 。
for(i = 0; i < n; i++)
{
sum += va_arg(va, int);
// printf("%p
",va); // , 。
// printf("%d
",sizeof(va));
}
va_end(va);
return sum;
}
int main()
{
int sum;
sum = sum0(5, 10, 2, 3, 4, 5);
printf("sum = %d
",sum);
sum = sum0(4, -10, 3, 3, 5);
printf("sum = %d
",sum);
return 0;
}