可以看到,trace语句的工作方式有点像c语言中的printf语句,trace宏参数的个数是可变的,因此使用起来非常容易。如果查看mfc的源代码,你根本找不到trace宏,而只能看到trace0、trace1、trace2和trace3宏,它们的参数分别为0、1、2、3。
二、assert宏
如果你设计了一个函数,该函数需要一个指向文档对象的指针做参数,但是你却错误地用一个视图指针调用了这个函数。这个假的地址将导致视数据的破坏。现在,这种类型的问题可以被完全避免,只要在该函数的开始处实现一个assert测试,用来检测该指针是否真正指向一个文档对象。一般来讲,编程者在每个函数的开始处均应例行公事地使用assertion。assert宏将会判断表达式,如果一个表达式为真,执行将继续,否则,程序将显示一条消息并且暂停,你可以选择忽视这条错误并继续、终止这个程序或者是跳到debug器中。下面一例演示了如何使用一个assert宏去验证一个语句。