Chinaunix首页 | 论坛 | 博客
  • 博客访问: 365572
  • 博文数量: 56
  • 博客积分: 2721
  • 博客等级: 中校
  • 技术积分: 460
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-29 16:18
文章分类

全部博文(56)

文章存档

2014年(1)

2011年(15)

2010年(5)

2008年(35)

分类: C/C++

2011-01-03 17:00:58

  • ASSERT
ASSERT( booleanExpression )
参数:
booleanExpression 指定了一个表达式(包含指针变量),其计算结果为非零值或0。

说明:
这个宏计算它的参数。如果结果为0,则输出一个调试信息并退出程序。如果结果为非零值,它什么也不做。
诊断信息具有如下形式:
assertion failed in file in line
这里的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*指针时才结束程序。
  • TRACE
TRACE( exp )

参数:
exp 指定了可变数目的参数,它们的使用方式与运行时函数printf中的可变数目的参数相同。

说明:
提供了与printf函数类似的功能,可以向转储设备,例如文件或调试终端发送格式化字符串。与MS-DOS下的C程序中的printf类似,TRACE宏是在程序指向时跟踪变量值的简便方式。在调试环境中,TRACE宏的输出发送到afxDump。在发行环境中,它不做任何操作。
TRACE宏每次最多可以发送512个字符。如果你通过格式化命令调用TRACE宏,被展开后的格式化命令的字符串总长度不能超过512,包括结尾的NULL字符。超出了这个限制就会引起ASSERT。
注意:这个宏仅在MFC的调试版本中有效。
更多的信息参见"Visual C++程序员指南"中的文章"MFC调试支持"。

示例
// TRACE的例子
int i = 1;
char sz[] = "one";
TRACE( "Integer = %d, String = %s\n", i, sz );
// output: 'Integer = 1, String = one'
  • VERIFY
VERIFY( booleanExpression )

参数:
booleanExpression指定了一个表达式(包含指针变量),其计算结果为非零值或0。

说明:
在MFC的调试版本中,VERIFY宏计算它的参数。如果结果是0,这个宏就打印出一条消息并中止程序。如果结果为非零值,它就不做任何操作。
诊断消息的形式如下:
assertion failed in file in line
这里的name是源文件的名字,num是源文件中发生断言失败的位置的行号。
在MFC的发行版本中,VERIFY计算表达式的值,但是并不输出或中断程序。例如,如果这个表达式是一个函数调用,这个调用会被执行。
阅读(2734) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~