assert.h

✍ dations ◷ 2025-12-11 14:06:08 #

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

相关

  • 食道食道(Esophagus),亦称食管,人和动物消化管道的一部分,上面连接咽,下面连通胃,紧贴脊柱的腹侧,具有输送食物的功能。食道是一条由肌肉组成的中空通道,在最尾端与胃相接的地方有一个括
  • 矿物矿物是指在地质作用下天然形成的结晶状纯净物(单质或化合物)。绝对的纯净物是不存在的,所以这里的纯净物是指物质化学成分相对单一的物质。矿物是组成岩石的基础(像石英、长石、
  • 2011年德国人口普查2011年德国人口普查是两德统一后的第一次人口普查,德国人口普查由德国联邦统计局负责,普查标准日在2011年5月9日。根据本次普查,2011年德国常住总人口数为80,219,695人。根据20
  • 德黑兰会议德黑兰会议(英语:Tehran Conference,代号:Eureka)是由美国总统罗斯福、英国首相丘吉尔、苏联共产党总书记斯大林自1943年11月28日至12月1日举行的战略会议,地点在伊朗首都德黑兰的
  • 苏珊·波伊尔苏珊·玛格达莱娜·博伊尔(英语:Susan Magdalane Boyle,1961年4月1日-)是出身苏格兰的歌手,亦是社区教会的义工。她于2009年4月11日参加第三季的英国达人竞赛而受到大众的注意。在
  • 圆山别庄坐标:25°4′23.64″N 121°31′27.74″E / 25.0732333°N 121.5243722°E / 25.0732333; 121.5243722台北故事馆,旧名圆山别庄(台湾话:.mw-parser-output .sans-serif{font-fam
  • 方北群方北群(?-)籍贯不详,中国人民解放军少将。方北群曾任中国人民解放军防空兵指挥学院院长等职务。2013年调任中国人民解放军总参谋部军训部副部长。在2015年由中国人民解放军总参谋
  • 英国独立广播英国独立广播(United Kingdom Independent Broadcasting,UKIB)是英国的一个由独立电视节目制作公司和播出机构组成的合作组织。英国独立广播的会员包括了独立电视台,17家独立电
  • 谢尔曼反托拉斯法休曼反垄断法案(英语:Sherman Antitrust Act,1890年7月2日通过),又译为谢尔曼反垄断法,经常被简称为休曼法案(Sherman Act),美国联邦的反商业信托法,要求美国联邦政府有责任去调查并且
  • 嫔妃妃嫔是指君主经过册封的妾室,又有嫔妃、嫔御等别称,广义上可以包括所有君主妾室。除欧洲基督教国家外,大多数古代国家都实行一夫多妻制,君主拥有众多妻子或妾室是极为常见的。在