最近在修复先前的源码的时候将vsprintf 都替换成vsprintf_s,发现竟然有很大一个坑在等着俺,哎!
为什么呢?因为vsprintf_s 竟然没有vsprintf 写得好!
LG2("nihao","%你好吗?");
void LG2(char const* type, char const* format, ...)
{
char buf[8192] = {0};
int len;
va_list args;
va_start(args, format);
len = vsprintf_s(buf, format, args);//因为%的原因导致了崩溃
len = vsprintf(buf, format, args);//这个函数更加安全,会将%的错误参数去掉,变成空白
va_end(args);
}