動的引数を使った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; }