C/C++ 变长参数 (自己定义类似printf的函数)

#include<windows.h>
/*
  va_list 参数列表指针,C语言默认函数又到左压栈。 
  va_arg 获取参数
  va_end 清空参数
  缺点不能动态知道参数类型 + 参数个数。
  printf函数依靠格式化字符串判断参数类型和个数 
   

*/ 
void MessageBoxPrintf(char* pszCaputre,char* Format,...)
{
    va_list vaList;//equal to Format + sizeof(FOrmat)
    char szBuff[100];
    memset(szBuff,0,sizeof(char)*100);
    va_start(vaList,Format);
    //vsPrintf 三个参数 buff,format,参数数组的指针,va_list类型的。这个函数
    // 多用于实现多个参数的自定义函数 
    _vsnprintf(szBuff,100,Format,vaList); 
    va_end(vaList);
    MessageBoxA(NULL,szBuff,pszCaputre,MB_OK);
}    
int main()
{
    MessageBoxPrintf("test","%d,%d",1,2);
    cout<<Sum(0,1,2,3,4);
    system("pause");
    return 0;
}        

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值