C语言标准库概览详述[1]-断言

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;
}


你可能感兴趣的:(c,File,语言,FP)