变参函数
#include <stdio.h>
#include <stdarg.h>
int max(int n,...){
int ans=0x80000000;
va_list arg; //定义va_list 类型变量arg
va_start(arg,n); //宏函数va_start
while(n--){
int temp=va_arg(arg,int); //宏函数va_arg
if(temp > ans) ans=temp;
}
return ans;
}
int main(){
printf("%d\n",max(8,1,2,3,4,5,6,7,8));
return 0;
}
变参宏
#include <stdio.h>
#define log(frm,args...){\
printf(frm,##args);//加##进行连接,解决只传一个参数引发的问题\
}
int main(){
log("%s\n","dkdkdk");
log("dkdkd");
return 0;
}