必威体育Betway必威体育官网
当前位置:首页 > IT技术

assert.h 详解

时间:2019-08-21 03:14:23来源:IT技术作者:seo实验室小编阅读:78次「手机版」
 

assert.h

assert.h

简介

assert.h 常用于防御式编程。防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。

断言 assert 就是声明某种东西为真,该函数多用于调试。

宏函数

assert

  • 原型:void assert (int expression);

  • 说明:aserrt 是一个宏而非函数,实际并不具有函数原型。当它被执行时,判断 expression 的真假,如果为假,它就向标准错误打印一条诊断信息并终止程序。当消除所有预期错误后,可以通过 #define NDEBUG 消除所有断言。

  • 返回值:无。

  • 实例:

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

//#define NDEBUG        //定义后,预处理器将丢弃所有 assert 函数。

void dialog(int *p){
    assert( p != NULL );
    printf("%d", *p);
}

int main(){
    int a = 10;
    int *pa = NULL, *pb = NULL;
    pa = &a;
    dialog(pa);
    dialog(pb);
    return 0;
}

控制台会输出:

> assertion failed: p != NULL, file c:\\...\\....\\...\test.c, line 9

相关阅读

assert.h问题

NVIDIA面试笔试题之一:assert.h是c标准库的一个头文件,该头文件的主要目的就是提供一个assert的宏定义。assert只是对所给的表达式

分享到:

栏目导航

推荐阅读

热门阅读