上学的时候经常看到一些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头文件中可以看到完整定义。
VC编程中VERIFY与ASSERT的区别
本文探讨了在使用VC编程环境下,VERIFY宏与ASSERT宏的不同之处。在DEBUG模式下两者功能相同,但在RELEASE模式下,ASSERT不计算表达式而VERIFY会计算。这有助于理解如何在不同编译模式下选择合适的宏来提高程序的稳定性和效率。
7924

被折叠的 条评论
为什么被折叠?



