最近在看一本书《游戏编程精粹》,里面讲述了很多C++种Assert宏的用法,我觉得很有用,所以拿出来和大家分享一下~!
首先,什么是Assert?
以下是书中原话:每个程序员都应该虔诚地使用assert宏。Assert是一个简单的,无需额外代价的、针对你的假设进行双重检验的工具、它时时刻刻都在保护着你。
通过给assert宏一个条件进行计算,你就断言这个条件应该为真。如果条件为假,assert将弹出一个对话框告诉你发生了什么问题。
我在这儿单独解释一下,assert只在Debug模式下面有效,而在Relese模式下面是不会执行的。所以Assert是一个非常有效的调试工具。
可以做一个小实验,下面一段代码在VS2010的Debug模式下面会蹦出对话框,而在Release模式下面则没有其他反应。
#include <assert.h>
int _tmain(int argc, _TCHAR* argv[])
{
int *p=NULL;
assert(p!=NULL);
return 0;
}
因此,我们用好了assert,对调试代码是非常有帮助的,下面我们就仔细谈谈如何最大限度的利用assert!
如果您觉得有帮助,请留下宝贵的意见和建议,谢谢~!