C标准库 assert.h

C 标准库的 assert.h头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。

assert.h 的功能是用于诊断,仅包含assert宏。可以在程序中使用该宏来诊断程序状态(例如某个变量是否为0等),若检查失败,程序终止。

C标准库 assert.h

assert.h 文件内容如下:

#include <sys/cdefs.h>

#undef assert
#undef __assert_no_op

#define __assert_no_op __BIONIC_CAST(static_cast, void, 0)

#ifdef NDEBUG
# define assert(e) __assert_no_op
#else
# if defined(__cplusplus) || __STDC_VERSION__ >= 199901L
#  define assert(e) ((e) ? __assert_no_op : __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, #e))
# else
#  define assert(e) ((e) ? __assert_no_op : __assert(__FILE__, __LINE__, #e))
# endif
#endif

#if !defined(__cplusplus) && __STDC_VERSION__ >= 201112L
# undef static_assert
# define static_assert _Static_assert
#endif

__BEGIN_DECLS
void __assert(const char* __file, int __line, const char* __msg) __noreturn;
void __assert2(const char* __file, int __line, const char* __function, const char* __msg) __noreturn;
__END_DECLS

assert库定义的函数

下面列出了头文件 assert.h 中定义的唯一的函数:

序号 函数 & 描述
1 void assert(int expression) 这实际上是一个宏,不是一个函数,可用于在 C 程序中添加诊断。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程