assert.h

✍ dations ◷ 2025-12-08 20:40:09 #

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

相关

  • 横膈膜在哺乳动物的解剖学中,横膈膜(英语:Thoracic diaphragm)是一层骨骼肌薄膜,延展及肋骨底部。横膈膜将胸腔与腹腔相分隔,并对呼吸执行重要功能。解剖学中的膈膜(英语:Diaphragm)也可以
  • 劳勃·梭罗罗伯特·墨顿·索洛(英语:Robert Merton Solow,1924年8月23日-),美国经济学家,以其新古典经济增长理论著称,并在1961年被授予美国经济学会授予青年经济学家的克拉克奖章和1987年诺贝
  • 小川诚二小川诚二(日语:小川 誠二/おがわ せいじ Ogawa Seiji ?,1934年1月19日-),日本物理学家,现代功能性磁共振成像(fMRI)之父。现任东北福祉大学特聘教授。小川教授是证明功能性脑成像取
  • 1s2 2s2 2p62, 8蒸气压第一:2080.7 kJ·mol−1 第二:3952.3 kJ·mol−1 第三:6122 kJ·mol−1 (主条目:氖的同位素氖(旧译作氝,讹作氞)是一种化学元素,它的化学符号是Ne,它的原子
  • ø半闭前圆唇元音(The close-mid front rounded vowel, or high-mid front rounded vowel )是母音的一种,用于一些语言当中,国际音标是 ⟨ø⟩。注意其符号与语言学上表示“零(英语
  • 宇宙大爆炸理论大爆炸又称大霹雳(英语:Big Bang),是描述宇宙的源起与演化的宇宙学模型,这一模型得到了当今科学研究和观测最广泛且最精确的支持。宇宙学家通常所指的大爆炸观点为:宇宙是在过去有
  • 九期一“九期一”,学名甘露特钠胶囊(GV-971),是一款用于治疗轻度至中度阿尔茨海默症(俗称老年痴呆症)的药品,据称是中国第一款治疗阿尔茨海默症的原创新药。但它亦引起了不少质疑,包括研发
  • 显忠院显忠院可以指:
  • 攻、受、不分在男同性恋文化的同性性行为中,攻(1、Top)、受(0、Bottom)和不分(0.5、Versatile)都是用于描述性行为中的位置,特别是男男性行为的肛交中。1通常是肛交中的插入方,而0则往往是被插入
  • Oregon俄勒冈州(英语:State of Oregon), 旧译柯利近州,是美国的一个州,位于美国西北的太平洋沿岸,西临太平洋、北接华盛顿州、东面是爱德荷州、南面是加利福尼亚州和内华达州。2012年人