typedef char* va_list;
#define va_start _crt_va_start
#define va_arg _crt_va_arg
#define va_end _crt_va_end
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1)
#define _crt_va_start(ap,v) ( ap = (va_list)_ADDRESSOF(v) + _INTSIZEOF(v) )
#define _crt_va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
#define _crt_va_end(ap) ( ap = (va_list)0 )
void MyPrintf(const char* strFormat, ...)
{
va_list ap;
va_start(ap, strFormat);
char szBuffer[1024] = {0};
vsnprintf(szBuffer, _countof(szBuffer), strFormat, ap);
va_end(ap);
printf(szBuffer);
}
int main(int argc, char* args[])
{
MyPrintf("int = %d, double = %f, char = %c", 10, 10.0, 'c');
return 0;
}