1.1 assert
void assert( int expression );
assert宏用于为程序增加诊断功能。当assert(exp)执行时,如果exp为0,
则在标准出错输出流stderr输出一条如下所示的信息:
Assertion failed: expression, file filename, line nnn
然后调用abort终止执行。其中的源文件名filename和行号nnn来自于预处理宏__FILE__和__LINE__。
如果<assert.h>被包含时定义了宏NDEBUG,那么宏assert被忽略。
示例:
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
int main( void )
{
FILE *fp;
fp = fopen( "test.txt", "w" );
assert( fp ); /*这里不会出错*/
fclose( fp );
fp = fopen( "noexitfile.txt", "r" );
assert( fp ); /*这里出错*/
fclose( fp ); /*不会执行到这里*/
return 0;
}