assert.h

✍ dations ◷ 2025-11-28 23:45:52 #

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)。

相关

  • 病因学病原学又称为病因学是形成疾病的因素。因为不同性质的病原,大致上可以分成直接病因与助因两类。直接病因最常见的是创伤,或者是因为感染或辐射暴露导致的疾病。直接病因不一定
  • 后辈后辈、晚辈,可以指后代、子孙,也可以是对社会中无血缘关系而比自己年少者,或者同组织中科层地位相近而比自己资浅者的称呼。对于后辈,有若干不同的称呼法,例如在学徒、剧团之间叫
  • 榕树榕亚属(学名:Ficus subg. Urostigma),是桑科榕属的亚属之一,由于多为常绿乔木及细节分冶不易被人分辨,因此也统称榕树。有“正榕”、“鸟榕”、“老公须”或“戏叶榕树”等别名。
  • 巴林中华民国与巴林关系是指中华民国与巴林王国之间的关系。两国无官方外交关系,但中华民国于巴林首都麦纳麦设立具大使馆性质的代表机构。仅列举部分名单:巴林:商业暨农业部长、运
  • 拔摩岛的约翰拔摩岛的约翰(英语:John of Patmos),新约圣经中《启示录》的作者,根据《启示录》记载,他居住在希腊的拔摩岛上。传统上,主要的基督教会都相信他就是十二使徒中的约翰,也就是写作《约
  • 吸蜜蜂鸟吸蜜蜂鸟(学名:Mellisuga helenae)是古巴及青年岛的蜂鸟特有种。它们约重1.8克及长5厘米,是世界上最细小的鸟类。雄性吸蜜蜂鸟的鸟冠呈绿色,喉咙呈红色,领子虹色,上身蓝色,下身主要
  • 驻外使馆警卫队海军陆战队使馆警卫队(英语:Marine Corps Embassy Security Group),前称海军陆战队卫兵营(Marine Security Guard Battalion),是美国海军陆战队一支营级的部队,负责美国驻外大使馆、
  • 狐鼬属狐鼬(学名:Eira barbara),一种产于中美洲的鼬科动物,是狐鼬属下唯一一种,有9个亚种。中等体型,体长大约60厘米,有一条45厘米长的尾巴,体毛为深褐色或黑色,胸部有一块浅色块,体重为5公斤
  • 三氧化硒三氧化硒(化学式SeO3)是硒(VI)的氧化物。为无色潮解性晶体。实验室通过用无水硒酸钾(K2SeO4)和三氧化硫反应制备三氧化硒: K2SeO4 + SO3 → SeO3 + K2SO4 三氧化硒在热力学上不
  • 欧洲卡车模拟2name = 'Transport',description = '交通',content = {{ type = 'text', text = ] },{ type = 'item', original = 'articulated bus', rule = 'zh-cn:铰接客车;zh-tw:双节