C语言assert用法与示例

本文针对初学者,介绍了assert函数。其原型为void assert(expression),存在于头文件assert.h中,expression为真则继续执行,为假则中断并输出信息。还说明了在#include <assert.h>前输入#define NDEBUG可使该函数失效,并给出不同情况的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作为初学者,以前学过的基本函数中没有接触过assert,今天偶然见到了assert函数,就在这里尝试使用assert函数。
首先函数的原型是:void assert(expression),如果assert函数中的expression为真,就继续执行下面的函数,如果为假,就中断跳出,并且在屏幕上输出中断信息。
函数存在于头文件assert.h中。

关于assert函数的有效性
如果在#include <assert.h>之前,输入了#define NDEBUG就可以使assert函数在程序中失效。

示例
(1)expression为真。
我们写一个简单的程序:

#include <stdio.h>
#include<stdlib.h>
#include <assert.h>

int main()
{
    int i = 1;
    assert(i);
    printf("pass!");
    return 0;
}

运行结果:
在这里插入图片描述
(2)expression为假。
沿用上面的程序,但是将i的值改为0:

#include <stdio.h>
#include<stdlib.h>
#include <assert.h>

int main()
{
    int i = 0;
    assert(i);
    printf("oifjeoj");
    return 0;
}

运行结果
在这里插入图片描述
(3)只用#define NDEBUG
按照上述说明,如果在#include <assert.h>之前插入这行代码,那么assert就失效,程序仍然会输出“pass!”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值