assert.h

✍ dations ◷ 2024-09-20 06:39:04 #

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

相关

  • 罗氏制药公司罗氏(德语:F. Hoffmann-La Roche AG,简称Roche),总部位于瑞士巴塞尔的跨国医药研发生产商。它始创于1896年,现属于罗氏控股股份有限公司。罗氏于2009年3月26日以大约468亿美元完成
  • 拉尔夫·本奇拉尔夫·约翰逊·本奇(Ralph Johnson Bunche,1903年8月7日-1971年12月9日),美国政治学家、外交家,由于1940年代后期在巴勒斯坦的调停工作而获得1950年诺贝尔和平奖。他是第一位获
  • 国家卫生研究院 (台湾)国家卫生研究院,简称国卫院、国家卫生院,是中华民国在台湾医药与卫生研究机构,属于公设的财团法人。位在苗栗县竹南镇,属于新竹科学园区的一部分。最早的成立构想是在1988年,1996
  • 铽化合物铽化合物是镧系金属铽(元素符号:Tb)形成的化合物,在这些化合物中,铽一般显+3价,如TbCl3、Tb(NO3)3等;+4价的铽化合物如TbO2、BaTbF6也是已知的。三价铽离子在水溶液中一般是无色的,
  • 神德王后神德王后(韩语:신덕왕후;1356年7月12日-1396年9月15日)康氏,朝鲜太祖正妃,本贯谷山,是高丽判三司事、象山府院君康允成和晋山府夫人姜氏的女儿。高丽时,为太祖的京妻,太祖即位后封为显
  • 安费扬古安费扬古(满语:ᠠᠨᡶᡳᠶᠠᠩᡤᡡ,穆麟德:Anfiyanggū,太清:Anfiyanggv;1559年-1622年),满洲镶蓝旗人,觉尔察氏,完布禄之子,后金开国五大臣之一,世居瑚济寨。少年时期便跟随清太祖努尔哈
  • 婚外情外遇,也称作婚外情、偷食、出轨、第三者插足(此第三者俗称“小三”),是指有婚姻关系的其中一人,与配偶以外的人发生超出友谊的爱情关系(不论是否有性行为)。外遇的定义依不同研究领
  • 动画电影动画长片列表列出世界上所有动画电影,列表中也包括电视电影及录像带首映的电影作品。本列表中的动画电影片长至少要达到40分钟、至少75%是动画,或是动画长度40分钟。动画长片
  • 硝酸铬硝酸铬(Ⅲ),化学式Cr(NO3)3。硝酸铬是一种红紫色单斜潮解结晶,易溶于水,溶于酸、碱、乙醇和丙酮。加热至100°C则分解。其水溶液加热时呈绿色,冷却后又迅速变为红紫色。由三氧化
  • 发罗拉发罗拉(阿尔巴尼亚语:Vlorë)是位于阿尔巴尼亚发罗拉州及发罗拉区的一个城市,是阿尔巴尼亚仅次于都拉斯的第2大港湾都市,人口有79,948人。阿尔巴尼亚独立宣言就是于1912年11月28