我试图弄清楚一个透明的解决方案,用于在我的游戏中重复出现的调试暂停。我可以制作一个HALT_ONCE宏吗?
对于一个微不足道的例子;说我在我的渲染器中停下来,告诉我什么时候尝试使用NULL材质。我的渲染器处理这个很好,但我仍然想知道我做错了什么。 这个暂停将立即击中每一帧,除非我手动禁用它。
这是代码ID喜欢变成一个宏(或别的东西,这就是透明的porssible)
#define HALT(errorMsg) printf(errorMsg);__asm { int 3 };
satic bool hitOnce = false;
if (!hitOnce)
{
hitOnce = true;
HALT("its all gone wrong!")
}
的想法我有,是使创建此代码的宏,具有独特的每次布尔变量。目前我遇到的问题是,我不能在编译时增加数字来为每个HALT_ONCE生成唯一的静态布尔值。
您可以使用'__COUNTER__'宏在编译时生成唯一的ID,但Evan Teran有更好的解决方案。 – 2009-09-10 15:01:16