TRACE for C++

本文介绍了一个用于输出调试信息的Trace宏定义实现。该宏利用了C/C++标准库中的函数来格式化并打印字符串到输出窗口。文章还提供了一个扩展版本的Trace宏,能够包含文件名和行号信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ExpandedBlockStart.gif代码
/* 
Trace.h
*/

#ifndef __TRACE_H__
#define __TRACE_H__

#include 
<crtdbg.h>
#include 
<stdarg.h>
#include 
<stdio.h>
#include 
<string.h>
#pragma warning(disable : 4996)

#ifdef _DEBUG
#define TRACEMAXSTRING    1024

inline 
void Trace(const char* format,...)
{
    
static char szBuffer[TRACEMAXSTRING];
    va_list args;
    va_start(args,format);
    
int nBuf;
    nBuf 
= _vsnprintf(szBuffer,
        TRACEMAXSTRING,
        format,
        args);
    va_end(args);

    _RPT0(_CRT_WARN,szBuffer);
}
#define TraceEx _snprintf(szBuffer,TRACEMAXSTRING,"%s(%d): ", \
    
&strrchr(__FILE__,'\\')[1],__LINE__); \
    _RPT0(_CRT_WARN,szBuffer); \
    Trace

#else
inline 
void Trace(0);
inline 
void TraceEx(0);
#endif


#endif // __TRACE_H__

Like cout it's not Thread Safe, but using this small class, you can print message to output windows.

转载于:https://www.cnblogs.com/slime/archive/2010/08/06/1793617.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值