我有以下辅助功能:
inline void DebugMessage(const TCHAR* fmtstr, ...)
{
va_list args;
va_start(args, fmtstr);
TCHAR buffer[256];
StringCbVPrintf(buffer, 256, fmtstr, args);
OutputDebugString(buffer);
va_end(args);
}
我这样称呼它两次:
DebugMessage(_T("Test %d\n", 1)); // incorrectly closed _T()
DebugMessage(_T("Test %d\n"), 1); // correctly closed _T()
我得到以下输出:
Test 0
Test 1
第二种情况按预期工作。我很困惑为什么第一个案例完全起作用,而不是一个错误?