如果实现下列2种形式的重载
unsigned format(char* szBuf, unsigned nBufLen,const char* fmt...);
unsigned format(char* szBuf, unsigned nBufLen,const char* fmt, va_list arglist);
如果仅包含一个字符指针,则上述重载则总是调用后者,这将导致运行时内存错误,程序直接崩溃。
导致错误的原因是:
typedef char * va_list;
如果调用的代码中使用的是字符指针而不是va_list类型,那么将会导致运行时内存错误。
所以上述重载必须调整。