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 程序中添加诊断。
赞(1)
未经允许不得转载:极客笔记 » C标准库 assert.h
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址