C++代码里增加调试打印消息

1.在头文件里加入以下宏定义代码

#ifdef _DEBUG
#include <stdio.h>
	#define xPrintf(...) printf(__VA_ARGS__)
#else
	#define xPrintf(...) 
#endif //_DEBUG

2.在需要输出调试信息的代码块增加打印消息,注意return语句的上方,如下所示:

void* MemoryAlloc::allocMem(size_t nSize)
{
	if (!_pBuf)
	{
		initMemory();
	}
	MemoryBlock* pReturn = nullptr;
	//当前内存不足的情况
	if (nullptr == _pHeader)
	{
		pReturn = (MemoryBlock*)malloc(nSize + sizeof(MemoryBlock));

		pReturn->bPool = false;
		pReturn->nID = -1;
		pReturn->nRef = 0;
		pReturn->pAlloc = nullptr;
		pReturn->pNext = nullptr;
	}
	else
	{
		pReturn = _pHeader;
		_pHeader = _pHeader->pNext;
		assert(0 == pReturn->nRef);
		pReturn->nRef = 1;
	}
	xPrintf("allocMem:%lx, id = %d, size = %d\n", pReturn, pReturn->nID, nSize);
	return ((char*)pReturn + sizeof(MemoryBlock));
}

3.结果:当编译器切换至Debug模式运行时,每次分配内存时会打印该内存分配信息,当切换至Release模式运行时则不会打印。

知识补充:

1.关于__VA_ARGS__
__VA_ARGS__它是一个可变参数的宏,就是将左边宏中“…” 的内容原样抄写在右边 VA_ARGS 所在的位置。
…缺省号代表一个可以变化的参数表。使用保留名 VA_ARGS 把参数传递给宏。当宏的调用展开时,实际的参数就传递给 printf()了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值