assert.h

✍ dations ◷ 2025-11-29 13:47:17 #

assert.h是C标准函数库中的头文件。其中定义了assert()宏用于程序调试。

在C标准函数库中,它是个非常特别的头文件,你可以将它引入数次以获得不同的效果,此效果依引入时是否以定义NDEBUG而定。

assert()是一个诊断宏,用于动态辨识程序的逻辑错误条件。其原型是:void assert(int expression);

如果宏的参数求值结果为非零值,则不做任何操作(no action);如果是零值,用宽字符打印诊断消息,然后调用abort()。诊断消息包括:

诊断信息的显示目标依赖于被调用程序的类型。如果是控制台程序,诊断信息显示在stderr设备;如果是基于窗口的程序,assert()产生一个Windows MessageBox来显示诊断信息。

程序可以屏蔽掉所有的assert()而无需修改源代码。这只需要在命令行调用C语言的编译器时添加宏定义的命令行选项,定义NDEBUG宏;也可以在源程序程序引入<assert.h>之前就使用#define NDEBUG来定义宏。被屏蔽的assert()甚至不对传递给它的参数表达式求值,因此使用assert()时其参数表达式不能有副作用(side-effects)。

相关

  • 减数分裂减数分裂(拉丁语:meiosis)是一种特殊的细胞分裂方式,会使得染色体的数目减半,制造出单倍体细胞,每条染色体源自于其亲代细胞 。这个过程会发生在所有以有性生殖进行繁殖的单细胞或
  • 螺旋动物螺旋动物(学名:Spiralia),又称螺旋卵裂动物,是原口动物的一大分支,包括多种型态的动物门类,如软体动物、环节动物门、扁形动物门等。其动物在发育的早期过程中以经典的“螺旋式”卵
  • 季蒂昂的芝诺季蒂昂的芝诺(Ζήνων,前335年-前263年),古希腊哲学家(不同于公元前五世纪的埃利亚的芝诺),出生于塞浦路斯的季蒂昂(Citium),于公元前313年左右到雅典研究哲学,受到苏格拉底、赫拉克
  • 望远镜望远镜是一种可以透过透镜或面镜将电磁波(例如可见光)折射或反射以协助观察远方物体的工具。已知能实用的第一架望远镜是在17世纪初期在荷兰使用玻璃透镜发明的。这项发明现在
  • 沧龙沧龙属(学名:Mosasaurus)是沧龙科的一个属,它们是一群肉食性海生爬行动物,也是沧龙科中最有名的属。沧龙拥有巨大的头部、强壮的颌部与尖锐的牙齿、具有鳍状肢的,外形类似蛇,拥有极
  • 不值得活的生命纳粹集中营转移营比利时:布伦东克堡垒 · 梅赫伦转移营法国:居尔集中营 · 德朗西集中营意大利:波尔查诺转移营荷兰:阿默斯福特集中营 · 韦斯特博克转移营挪威:法斯塔德集中营部
  • 各国人均咖啡消费量列表这是一个各国(地区)年人均咖啡消费量列表,最新的为2009年的数据。
  • 通加斯国家森林通加斯国家森林(英语:Tongass National Forest)位于阿拉斯加狭地,是全美国最大的国家森林。林地面积17 × 106英亩(69,000平方千米),其中大部分是世界自然基金会生态区的温带雨林,
  • 2003年7月2003年7月的新闻事件:请参看:
  • 黑子 (歌舞伎)黑子,通常又叫黑衣(黒衣(くろご)),是指歌舞伎中,身着黑衣并负责舞台布置的演员。黑子除了身着黑衣外,还要用黑布蒙面。有些西方电影更将黑子与忍者混为一谈。另外,除了穿黑衣外,在表现