assert.h

✍ dations ◷ 2025-12-10 17:39:43 #

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

相关

  • 花柳性淋巴肉芽肿花柳性淋巴肉芽肿,是一种由砂眼披衣菌引起的性病,特别盛行于亚、热带地区。其男性患者远多于女性患者。淋巴肉芽肿症状经过1-3周的潜伏期后,受感染患处(通常是性器官)会出现一个
  • 处置深地质处置指在稳定的地质构造中开掘的放射性核废料存放场所,一般在地下300米以下。核废料形态、其包装、场地的密封和防渗以及地质条件等诸多因素决定了储放场所成功与否。
  • 遵循先例遵循先例(Stare decisis)是指在普通法中,作为判例的先例对其后的案件具有法律约束力,法院以后面对相同的问题时必须作出同样判决的原则。遵循先例是判例法形成的基础。当然,法院
  • 洪康乔洪康乔(英语:Kevin Hu,1992年04月22日-)毕业于高雄七贤国中,与余纯安一同到“绿色神盾”松山高中接受铁血教头黄万隆的训练,并在高二、高三带领绿色神盾完成2连霸。其中,98学年度的H
  • 轨道力学航天动力学是研究航天器和运载器在飞行中所受的力及其在力作用下的运动的学科,又称星际航行动力学、天文动力学和太空动力学。航天动力学研究的运动包括航天器的质心运动,称轨
  • 骨头侵蚀骨头侵蚀(英语:bone erosion,简称骨侵蚀)是疾病恶化造成的骨骼破坏。侵蚀性关节炎(英语:erosive arthritis)是关节发炎(关节炎)合并骨破坏,造成这种变化的疾病包括类风湿性关节炎。骨
  • 佐渡岛佐渡岛(日语:佐渡島/さどがしま Sadogashima */?)是位于日本海东部的一个岛屿,属日本新潟县佐渡市管辖,海岸线全长262.7公里。2017年10月,佐渡岛有人口55,212人。佐渡岛面积854.7
  • 婆罗摩火山布罗莫火山又译作婆罗摩火山,是印度尼西亚的火山,位于爪哇岛东部,行政方面由东爪哇省负责管辖,海拔高度2,329米,火山口的南北向直径为800米、东西向直径为600米,位于东爪哇岛泗水
  • 西伯加虫科见内文西伯加虫科(学名:Siboglinidae)是动物界环节动物门多毛纲缨鳃虫目之下的一个科。本科物种包括原来须腕动物门(Pogonophora)及前庭动物门(Vestimentifera)的所有物种合共约100
  • 重点机场重点机场(英语:Focus City)指一间航空公司于非其枢纽机场开办多条前往其他城市的直航航线。例如,美国西北航空公司(已并入达美航空)于2009年3月,在西雅图塔科马国际机场提供了17条