次のヘルパー関数があります。
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);
}
そして、私はそれを次のように2回呼び出します:
DebugMessage(_T("Test %d\n", 1)); // incorrectly closed _T()
DebugMessage(_T("Test %d\n"), 1); // correctly closed _T()
次の出力が得られます。
Test 0
Test 1
2番目のケースは期待どおりに機能します。エラーではなく、最初のケースが機能する理由がわかりません。