do-while循环将整个assertion封装在一个单独的程序块中,使得编译器编译起来很舒畅。if语句将求取表达式的值并且当结果为零时调用afxassertfailedline()函数。这个函数将弹出一个对话框,其中提供三个选项“取消、重试或忽略”,当你选取“重试”时,它将返回true。重试将导致对afxdebugbreak()函数的调用,从而激活调试器。
do-while循环将整个assertion封装在一个单独的程序块中,使得编译器编译起来很舒畅。if语句将求取表达式的值并且当结果为零时调用afxassertfailedline()函数。这个函数将弹出一个对话框,其中提供三个选项“取消、重试或忽略”,当你选取“重试”时,它将返回true。重试将导致对afxdebugbreak()函数的调用,从而激活调试器。
afxassertfailedline()是一个未正式公布的函数,它的功能就是显示一个消息框。该函数的源代码驻留在afxasert.cpp中。函数中的—file—和—line—语句是处理器标志,它们分别指定了源文件名和当前的行号。