转载:https://blog.csdn.net/anye3000/article/details/6593551
sprintf函数的定义为:
int sprintf(char *szBuffer, const char *szFormat,...);
第一个参数:一个字符缓冲区,后面是一个格式字符串。
sprintf并不是把格式化结果写到标准输出,而是将其存入szBuffer。
该函数返回该字符串的长度。
vsprintf 函数定义如下:
int vsprintf(char *string, char *format, va_list param);
vsprintf 是sprintf 的一个变形,它只有三个参数。
vsprintf 用于执行有不定数量参数的函数,类似printf 格式。
vsprintf的前两个参数与sprintf相同:一个用于保存结果的字符串缓冲区和一个格式化字符串。
第三个参数是指向格式化参数队列的指针。
实际上,该指针指向在堆栈中供函数调用的变量。
va_list、va_start和va_end宏(在STDARG.H中定义)帮助我们处理堆栈指针。
_vsntprintf:
int CDECL MsgVsntprintf(char *szCaption, char *szFormat,...)
{
char szBuffer[];
va_list pArgList;
va_start (pArgList,szFormat);
_vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(char),szFormat,pArgList);
va_end (pArgList);
return MessageBox(NULL,szBuffer,szCaption,);
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)