assert.h

✍ dations ◷ 2025-12-11 00:15:02 #

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

相关

  • 降部在西文字体排印学中,降部(英语:Descender)指的是一个字体中,字母向下延伸超过基线的笔画部分,也称为下延部。如右图所示,字母y第二笔的“尾巴”部分就是降部。另外字母 v两条对角线
  • 首次直接观测到GW150914是由激光干涉引力波天文台(LIGO)于2015年9月14日探测到的引力波现象,是人类首次直接探测到的引力波。相关探测结果由LIGO、处女座干涉仪(Virgo)研究团队于2016年2月11日
  • 四极离子阱四极离子阱是一种使用交变电场来束缚带电粒子的离子阱,也称无线射频 (RF)阱或者保罗离子阱, 为了纪念发明者沃尔夫冈·保罗。 沃尔夫冈·保罗发明了这种装置并因此成果而分享
  • 宾古·瓦·穆塔里卡宾古·瓦·穆塔里卡(齐切瓦语:Bingu wa Mutharika,1934年2月24日-2012年4月6日),马拉维经济学家、政治家,西南非洲人民组织成员,曾任东部和南部非洲共同市场秘书长、马拉维储备银行
  • 1990年代字也
  • 圣塔摩尼卡圣莫尼卡 (英语:Santa Monica)是美国加利福尼亚州洛杉矶县的一个城市,位于太平洋沿岸,洛杉矶市以西,这里是有母亲之路之称的美国66号公路的终点。目前是一个度假胜地和住宅区。201
  • 山东省各地级市面积列表本表列出山东省16个地级市的土地面积。根据国务院决定,山东省自2007年起开展第二次全国土地调查,以2009年12月31日为标准时点汇总数据。据《山东省第二次土地调查主要数据成果
  • 拉齐奥大区拉齐奥(意大利语:Lazio,拉丁语:Latium)是意大利的一个大区,其政府所在地为罗马。又译为拉提雍或拉丁姆。拉齐奥的名称来自于“Latium”,即“拉丁人之地”,是古罗马发源的地方。东哥
  • 两性 (化学)在化学,两性(amphoteric)的物质是指既可跟酸反应,又能跟碱反应的物质。例子有氨基酸、蛋白质、水及许多金属如铬、锌、锡、铝、镓、铅和铍。这种反应可以用来分开不同的正离子,例
  • .jo.jo为约旦国家及地区顶级域(ccTLD)的域名,于1997年推出。此外还拥有阿拉伯语顶级域名الاردن.‎。A .ac .ad .ae .af .ag .ai .al .am .ao .aq .ar .as .at .au .aw .ax