assert.h

✍ dations ◷ 2025-12-02 03:40:30 #

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

相关

  • 倒睫睫毛倒刺(英语:Trichiasis)是医学上表明睫毛生长方向异常的术语,其症状表现为眼睫毛向眼球生长并接触到角膜或结膜。倒睫可能是由感染、炎症、免疫系统疾病、先天性缺陷(如眼睑发
  • 谬论谬误与谬论是不恰当的推理,一般而言谬误指不当的推理思路,而谬论指不当的推理言论,可能是说者有不当思路,或说者无不当思路,但意图使听者产生不当思路或其言论明显容易误导听者产
  • 电磁学电磁学(英语:electromagnetism)是研究电磁力(电荷粒子之间的一种物理性相互作用) 的物理学的一个分支。电磁力通常表现为电磁场,如电场、磁场和光。电磁力是自然界中四种基本相互
  • 阿戈美拉汀阿戈美拉汀(英语:Agomelatine) ,商品名为维度新(Valdoxan),是一种褪黑素受体激动剂类抗抑郁药,由法国施维雅(Servier)公司研制。阿戈美拉汀主要用来治疗重度抑郁症(MDD),并且证据指出阿戈
  • 巴斯德效应1861年巴斯德发现,相比起足氧的情况,酵母在缺氧的情况下消耗更多的葡萄糖。这就是所谓的巴斯德效应。现在,人们将在厌氧型和需氧型能量代谢之间的转换过程总结为巴斯德效应。这
  • 黄泉黄泉,出自儒教经典《左传》中郑伯克段于鄢的故事,郑庄公说待其死后将与母亲在黄泉相见。后在汉字文化圈中用于指人死后所居住的地方。因打井至深时地下水呈黄色,又人死后埋于地
  • 二二八事件责任归属研究报告《二二八事件责任归属研究报告》是由二二八事件纪念基金会真相研究小组召集历史学者共同参与、历时年余而完成的文件,2006年第一版(ISBN 957-29362-1-2)。内容主要将二二八事件
  • 鸡林君主 · 首都 · 文学史 · 教育史电影史 · 韩医史陶瓷史 · 戏剧史韩国国宝 · 朝鲜国宝鸡林州都督府(朝鲜语:계림대도독부)是公元7世纪到9世纪,唐朝在朝鲜半岛中南部
  • 硝酸铽硝酸铽是一种无机化合物,化学式为Tb(NO3)3。硝酸铽可以将三氧化二铽、氢氧化铽或碳酸铽溶于硝酸得到:所得溶液经过小心蒸发可以得到水合硝酸铽,其中六水合物最常见。水合硝酸铽
  • 自我意识过剩自我意识过剩是自我意识的极端情况,表现为对自我的过分关注。当人们觉得自己正在被某人(或者某些人)盯着看的时候,就会产生一种不自然的自我存在感,这种感觉就是自我意识过剩。当