#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;
}
C/C++ 变长参数 (自己定义类似printf的函数)
最新推荐文章于 2024-02-25 16:41:22 发布