上學的時候經常看到一些VC編程方面的書上說,在用VC開發程序的時候,最好用VERIFY宏代替ASSERT,
當時不知道是其中的原因,今天看了兩個宏的定義,終於明白了。
1、在DEBUG模式下,兩個宏的功能是一樣的
2、在RELEASE模式下,ASSERT不會對參數裏的表達式進行計算,VERIFY會計算裏面的表達式(如果是函數,將會調用該函數)。
部分定義如下:
#ifdef _DEBUG
#define VERIFY(f) ASSERT(f)
#else
#define ASSERT(f) ((void)0) #define VERIFY(f) ((void)(f))
在VC的afx.h頭文件中可以看到完整定義。