您的位置:首页 > 其它

利用va_list向拥有可变参数函数传入可变的参数

2012-08-09 15:54 316 查看
#include <iostream>
#include <cstdarg>
using namespace std;

typedef int (*PCALLBACK)(int nCount,va_list vlist);

int addInt(int nCount,va_list vlist)
{
int sum = 0;
for (int i=0;i<nCount;i++)
{
sum+=va_arg(vlist,int);
}
return sum;
}

void func(PCALLBACK pCall,int nCount,...)
{
va_list valist;
va_start(valist,nCount);
cout<<pCall(nCount,valist)<<endl;
va_end(valist);
}

int main()
{
func((PCALLBACK)addInt,4,1,2,9,-4);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: