上學(xué)的時(shí)候經(jīng)??吹揭恍¬C編程方面的書上說,在用VC開發(fā)程序的時(shí)候,最好用VERIFY宏代替ASSERT,
當(dāng)時(shí)不知道是其中的原因,今天看了兩個(gè)宏的定義,終于明白了。
1、在DEBUG模式下,兩個(gè)宏的功能是一樣的
2、在RELEASE模式下,ASSERT不會(huì)對(duì)參數(shù)里的表達(dá)式進(jìn)行計(jì)算,VERIFY會(huì)計(jì)算里面的表達(dá)式(如果是函數(shù),將會(huì)調(diào)用該函數(shù))。
部分定義如下:
#ifdef _DEBUG
#define VERIFY(f) ASSERT(f)
#else
#define ASSERT(f) ((void)0)
#define VERIFY(f) ((void)(f))
在VC的afx.h頭文件中可以看到完整定義。
聯(lián)系客服