ASSERT
ASSERT( booleanExpression )
参数:
booleanExpression | 指定了一个表达式(包含指针变量),其计算结果为非零值或0。 |
说明:
这个宏计算它的参数。如果结果为0,则输出一个调试信息并退出程序。如果结果为非零值,它什么也不做。
诊断信息具有如下形式:
assertion failed in file <name> in line <num>
这里的name是源文件的名字,num是源文件中断言失败位置的行号。
在MFC的发行版本中,ASSERT并不计算表达式的值,因而也不会中断程序。如果不管环境如何,表达式都必须被计算,用VERIFY宏来代替ASSERT。
注意:这个函数仅在MFC的调试版本中有效。
示例:
// ASSERT的例子
CAge* pcage = new CAge( 21 ); // CAge is derived from CObject.
ASSERT( pcage!= NULL )
ASSERT( pcage->IsKindOf( RUNTIME_CLASS( CAge ) ) )
// 仅当pcage不是一个CAge*指针时才结束程序。
VERIFY
VERIFY( booleanExpression )
参数:
booleanExpression | 指定了一个表达式(包含指针变量),其计算结果为非零值或0。 |
说明:
在MFC的调试版本中,VERIFY宏计算它的参数。如果结果是0,这个宏就打印出一条消息并中止程序。如果结果为非零值,它就不做任何操作。
诊断消息的形式如下:
assertion failed in file <name> in line <num>
这里的name是源文件的名字,num是源文件中发生断言失败的位置的行号。
在MFC的发行版本中,VERIFY计算表达式的值,但是并不输出或中断程序。例如,如果这个表达式是一个函数调用,这个调用会被执行。
请参阅: ASSERT