当前位置: 代码迷 >> 综合 >> assert()函数?
  详细解决方案

assert()函数?

热度:25   发布时间:2023-12-06 06:45:05.0

assert() 其实并不是一个函数,
assert() 是一个调试程序时经常使用的宏,在程序运行时它计算括号内的表达式,如果表达式为 FALSE (0), 程序将报告错误,并终止执行。如果表达式不为 0,则继续执行后面的语句。
相当于以下逻辑:

if(假设成立)
{
    程序正常运行;
}
else
{
    报错&&终止程序!(避免由程序运行引起更大的错误)  
}

这个宏通常用来判断程序中是否出现了明显非法的数据,如果出现了终止程序以免导致严重后果,同时也便于查找错误。


来自C标准库<assert.h>
已定义的宏 assert 指向另一个宏 NDEBUG,宏 NDEBUG 不是 <assert.h> 的一部分。如果已在引用 <assert.h> 的源文件中定义 NDEBUG 为宏名称,则 assert 宏的定义如下:

#define assert(ignore) ((void)0)

也是<assert.h>中唯一的函数

void assert(int expression)
  相关解决方案