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; }