int testaaa(int a, int b)
{
a = 0;
b =0;
cout<<"hello!"<<endl;
return 1;
va_list arg_ptr;
int nArgValue =start;
va_start(arg_ptr,start); //以固定参数的地址为起点确定变参的内存起始地址。
do
{
cout<<nArgValue<<" ";
nArgValue = va_arg(arg_ptr,int); //得到下一个可变参数的值
} while(nArgValue != -1);
}
#define PRINT_PARAM(fun, ...){fun##(__VA_ARGS__);printf("%s\n", #fun);printFunArgs(__VA_ARGS__, -1);}
int main(void)
{
int x = 9,y=10;
PRINT_PARAM(testaaa,x,y);
while(1);
}
执行结果:
hello!
testaaa
9 10
{
a = 0;
b =0;
cout<<"hello!"<<endl;
return 1;
}
void printFunArgs(int start, ...)
{va_list arg_ptr;
int nArgValue =start;
va_start(arg_ptr,start); //以固定参数的地址为起点确定变参的内存起始地址。
do
{
cout<<nArgValue<<" ";
nArgValue = va_arg(arg_ptr,int); //得到下一个可变参数的值
} while(nArgValue != -1);
}
#define PRINT_PARAM(fun, ...){fun##(__VA_ARGS__);printf("%s\n", #fun);printFunArgs(__VA_ARGS__, -1);}
int main(void)
{
int x = 9,y=10;
PRINT_PARAM(testaaa,x,y);
while(1);
}
执行结果:
hello!
testaaa
9 10