ASSERT与assert
断言assert
ASSERT(expr);
assert(expr);
// 当expr==0时,系统会调用abort来终止程序运行。
// 当expr==true,正常运行
注:ASSERT是MFC中的,<afx.h> assert是标准C++中的,<assert.h>
两者都是在Debug下有效,在Release下,相当于没有,
#ifdef NDEBUG //NDEBUG是release,_DEBUG是debug #define assert(e) ((void)0) // 如果有定义NDEBUG宏,则assert断言不生效
VERIFY
VERIFY(wnd.create(...));
当debug、release下都运行 wnd.create(...) ,并在debug下断言是否成功。
#ifdef _DEBUG #define VERIFY(f) ASSERT(f) #else #define VERIFY(f) ((void)(f)) #endif
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。