# include <stdarg.h>
int var_sum(char * fmt,...){
char *q=fmt;
int len =0;
while(*q!='\0')q++,len++;
q=fmt;
va_list al;
va_start(al,fmt);
int i=0,sum=0;
for(;i<len;i++){
if(*q=='l'){
sum+=va_arg(al,long);
}else if(*q=='i'){
sum+=va_arg(al,int);
}else if(*q=='L'){
sum+=*(va_arg(al,long*));
}else if(*q=='I'){
sum+=*(va_arg(al,int *));
};
q++;
}
va_end(al);
return sum;
}
int sam(int a,int b){
return a+b;
};
typedef int (*F) (int ,int );
int main (void)
{
int h=50,r; //2
long k=3;
r=var_sum("lIiiL",5L,&h,6,7,&k);
F pf=sam; //1
int samf=pf(3,4);
return 0;
}
李忠老师《C语言非常道》习题6.4解答
最新推荐文章于 2024-07-12 10:56:01 发布