C语言标准库概览详述[1]-断言<assert.h>

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值