assert()是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为FALSE   (0),   程序将报告错误,并终止执行。如果表达式不为0,则继续执行后面的语句。这个宏通常原来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。例如,变量n在程序中不应该为0,如果为0可能导致错误,你可以这样写程序:    
......    
assert(   n   !=   0);    
k   =   10/   n;    
......    
assert只有在Debug版本中才有效,如果编译为Release版本则被忽略。
assert(表达式);  
如果   表达式   的结果为真,则顺利通过,如果为假,中断程序运行。  
但是这是在debug模式下的情况,在release模式下,assert相当于“空语句”,编译器会忽略它,也就是说assert在release模式下不起作用。  
 
这是一个宏(而不是函数),如果其中的表达式为假的话就quit程序,一般在调试的时候使用,在VC中需要在debug模式时才有用  
  编译器通过静态分析代码来查错,断言程序自动检测运行时刻错误,我们就能尽早发现错误。一般有下面几个类型    
ANSI   C断言  
assert(),需包含和定义NDEBUG    
C运行时刻函数库断言  
需包含   是VC++中的特殊断言  
    _ASSERT不显示失效表达式  
    _ASSERTE显示失效表达式,但不支持Unicode      
MFC库的断言  
    ASSERT宏和_ASSERT宏  
MFC还提供了ASSERT宏的几个变种,象VERIFY、ASSERT_VALID等