欢迎您 本站地址:  

C 库宏 - assert()

C 标准库 - <assert.h> C 标准库 - <assert.h>

描述

C 库宏 void assert(int expression) 允许诊断信息被写入到标准错误文件中,换句话说,它可用于在 C 程序中添加诊断。

assert() 是 C 标准库中的一个宏,定义在 <assert.h> 头文件中。它用于在程序运行时检查某个表达式是否为真。如果该表达式为假,assert() 宏会输出错误信息并终止程序的执行。

assert() 对于调试和测试非常有用。

assert() 是一个强大的工具,帮助开发人员在程序运行时检查条件并在条件不满足时提供详细的错误信息。

声明

下面是 assert() 宏的声明:

#include <assert.h>
assert(expression);

参数

如果 expression 的值为假(0),assert() 会输出一条包含以下信息的错误消息:

然后程序调用 abort() 函数终止执行。

返回值

这个宏不返回任何值。

实例

下面的实例演示了 assert() 宏的用法。

实例

#include <assert.h> #include <stdio.h> int main() { int a; char str[50]; printf("请输入一个整数值: "); scanf("%d", &a); assert(a >= 10); printf("输入的整数是: %d\n", a); printf("请输入字符串: "); scanf("%s", str); assert(str != NULL); printf("输入的字符串是: %s\n", str); return(0); }

让我们在交互模式下编译并运行上面的程序,如下所示:

请输入一个整数值: 11
输入的整数是: 11
请输入字符串: runoob 
输入的字符串是: runoob 

禁用断言

在发布版本中,你可能希望禁用断言以提高性能。可以通过定义 NDEBUG 来实现:

#define NDEBUG
#include <assert.h>

一旦定义了 NDEBUG,所有的 assert() 宏将被预处理为一个空语句,不会进行任何检查。

使用建议

注意事项

C 标准库 - <assert.h> C 标准库 - <assert.h>

小库提示

扫描下方二维码,访问手机版。