素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: twitter: @javascripter にどうぞ。

動的引数を使ったsum関数

動的引数を参考に、引数の数が動的な関数を作ってみた。
けっこう面倒くさい。特に、引数の数を教えなければいけないあたりがスマートじゃないなあ。

#include <stdio.h>
#include <stdarg.h>

int sum_args(int,...);

int main(){
	int n = sum_args(10,0,1,2,3,4,5,6,7,8,9);
	printf("1+2+..+9=%d\n",n);
	return 0;
}

int sum_args(int arg_num,...){
	va_list args;
	int v=0,i;
	va_start(args,arg_num);
	for(i=0;i<arg_num;i++)
		v+=va_arg(args,int);
	va_end(args);
	return v;
}