assert.h

✍ dations ◷ 2025-12-03 16:30:32 #

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

相关

  • 糖(sugar)泛指各种可食用的带有甜味的晶体,有甜味、短链、可溶于水的有机化合物,许多会用在食品。糖在有机化学中属于糖类,由碳、氢及氧三种原子组成。单糖是结构较简单的糖,包括
  • 监护宣告行为能力(capacity)为一种法律上的概念,其与“权利能力”及“意思能力”不同,乃指为法律行为之资格,亦即个人以独自的意思表示,使其行为发生法律上效果的资格而言。民法中基于私法
  • 发电发电(英语:Electricity generation),泛指从其它种类的能源转换为电力的过程。 现今主要使用的发电基本原理,于公元1820~1830年间,由英国科学家麦可·法拉第所发现。法拉第电磁感应
  • 大溪陵寝坐标:24°50′54.09″N 121°17′10.14″E / 24.8483583°N 121.2861500°E / 24.8483583; 121.2861500大溪陵寝,为奉厝中华民国第6、7任总统蒋经国遗体灵榇之处,位于台湾桃园
  • 狄那里克山脉狄那里克阿尔卑斯山脉(英语:Dinaric Alps),又称狄那里克山脉(克罗地亚语:Dinarsko gorje,塞尔维亚语:Динарске планине),是欧洲东南部的一条主要山脉,西起阿尔卑斯山脉,
  • 孝德天皇孝德天皇(596年—654年11月24日),日本第36代天皇(在位:645年7月12日至654年11月24日)。敏达天皇曾孙(宝皇女之弟)。曾因不满苏我氏专权,以患足疾为名,不参与政治。与中臣镰足(藤原镰足)
  • 缓冲国缓冲国(Buffer State)是夹在两个对立的或潜在敌对的强权国家之间的国家,并通过它的存在来避免两国之间的冲突。缓冲国通常的特征便是中立且弱小的,因而靠着其他国家互相制衡来获
  • 巴尔的摩地铁巴尔的摩地铁(英语:Baltimore Metro SubwayLink),在当地被直接称为地铁,是在美国马里兰州巴尔的摩地区由马里兰州交通局运营的一条地铁线路。虽然叫做“地铁”,这条线路有大半都不
  • 上阿赫瑟尔山坐标:47°04′01″N 12°25′36″E / 47.067036°N 12.426624°E / 47.067036; 12.426624上阿赫瑟尔山(德语:Hohe Achsel),是奥地利的山峰,位于该国西部,由蒂罗尔州负责管辖,属于维
  • DREAMING MONSTERDREAMING MONSTER(ドリーミングモンスター)为主要在日本活动的8人组偶像团体。成员皆为在20岁以上的大人系偶像。2015年1月TWIN PLANET主办,“20歳以上限定 大人アイドルオーデ