assert.h

✍ dations ◷ 2025-11-28 10:13:00 #

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

相关

  • 祈使句祈使语气(英语:imperative mood)是表达直接命令或请求的语气。它还用来表示禁止、请求或任何其他类的劝告。英语的祈使语气是简单地使用动词不定式来形成的。be 是其非限定形式
  • CYP2B63IBD, 3QOA, 3QU8, 3UA5, 4I91, 4RQL, 4RRT· iron ion binding · arachidonic acid epoxygenase activity · steroid hydroxylase activity · oxidoreductase activi
  • 锌补充剂3d10 4s22, 8, 18, 2蒸气压第一:906.4 kJ·mol−1 第二:1733.3 kJ·mol−1 第三:3833 kJ·mol−1 (主条目:锌的同位素锌(英语:zinc)是化学元素,化学符号是Zn,原子序数是30,相对原子
  • 保罗·迪巴拉保罗·布鲁诺·艾克斯基尔·迪巴拉(西班牙语:Paulo Bruno Exequiel Dybala,西班牙语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","S
  • 山狐山狐(Lycalopex culpaeus),又名寇巴俄狐或厄瓜多尔胡狼,是南美洲的野生犬科动物。它们是南美洲大陆内体型第二大的犬科,仅次于鬃狼。它们的外表很像赤狐。它们的毛呈灰及红色,下巴
  • 苦椒酱汤饭馔苦椒酱又称红辣椒酱(韩语:고추장)是韩国的酱料。一种具有鲜味与辣味的韩式酱料,颜色呈深红色。传统作法上,需在置于户外瓮里发酵多年。主成分有红辣椒粉、糯米粉、磨成粉状
  • 植物细胞学植物细胞学(Plant Cell Biology,或传统上的plant cytology) 研究植物细胞结构的科学,是广义的形态学的一部分,也是细胞学的一个分支。植物细胞学以植物细胞作为研究对象,利用生
  • α,β-不饱和羰基化合物α,β-不饱和羰基化合物即共轭的不饱和羰基化合物,包括醛、酮、酯、腈、(硝基化合物)等,但一般指α,β-不饱和醛酮,简称不饱和醛酮。它们在结构上有一个共同的特点,也就是含有一个
  • 尼古拉斯·奥塔门迪 尼古拉斯·埃尔南·奥塔门迪(西班牙语:Nicolás Hernán Otamendi,1988年2月12日-),简称尼古拉斯·奥塔门迪(西班牙语:Nicolás Otamendi),出生于布宜诺斯艾利斯,是一名阿根廷足球
  • 约翰·赫顿·爱德华兹约翰·赫顿·爱德华兹(英语:John Hilton Edwards,1928年3月26日-2007年10月11日)是英国医药遗传学家,曾经在1946年至1949年间攻读剑桥大学药剂学系及动物学系,之后转读密德塞斯医院