assert.h

✍ dations ◷ 2025-11-24 21:27:30 #

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

相关

  • 猪只猪科(学名:Suidae)属于哺乳纲偶蹄目,共有约20种现生物种与许多化石物种,包括家猪以及疣猪和鹿豚等多种野猪。所有物种均原产于亚洲、欧洲、非洲等旧大陆地区。已知最早的猪科化石
  • 自愿协助自杀(英语:Assisted Suicide)是指在另一个人的协助下自杀。 该术语有时特指“医生辅助自杀(Physician-Assisted Suicide)”,指由医生或其他医疗保健提供者所协助的自杀。如果
  • 德因泽塔因查(满语:,转写:tainca,?-1626年),或称德因泽,姓氏不详。清太祖努尔哈赤的小福晋,皇太极的庶母。天命五年(1620年)三月,汗宅内有一名闲散侍女秦太与一个名为纳扎的女子发生口角,互指对方
  • 威廉玛丽威廉与玛丽学院(英语:College of William & Mary in Virginia,或威廉玛丽学院)是一所位于美国维吉尼亚州威廉斯堡的著名小型公立大学,创立于1693年,是美国历史第二悠久的大学,校园
  • 斩立决斩立决是中国古时死刑,即对罪行无疑且严重的罪犯实行斩首处决的刑罚,源于汉代。中国自辛亥革命起即废除斩首刑。
  • 四碘合汞(II)酸铜(I)四碘合汞(II)酸铜(I)(化学式:Cu2),也称四碘合汞酸铜、碘化汞亚铜,为红色固体,有毒。四碘合汞(II)酸铜(I)可由下法制备:四碘合汞(II)酸铜(I)是红色固体,在71℃由红色可逆地变为黑紫色
  • 巴利亚丹吉乌帕齐拉巴利亚丹吉(孟加拉语:বালিয়াডাঙ্গী)是孟加拉国的一个乌帕齐拉,位于朗布尔专区的塔古尔冈县。巴利亚丹吉乌帕齐拉的坐标为26°06′00″N 88°16′30″E / 26.1000
  • 大阪府第15区大阪府第15区是日本众议院的选区,始于1994年。北海道 13 | 山形县 4 | 静冈县 9 | 岛根县 3 | 大分县 4福井县 3 | 山梨县 3 | 德岛县 3 | 高知县 3 | 佐贺县 3青森县 4 | 岩
  • 庞扎尔省坐标:10°50′51″N 0°49′00″E / 10.84750°N 0.81667°E / 10.84750; 0.81667庞扎尔省(法语:Préfecture de Kpendjal),是多哥的30个省份之一,位于该国北部,由草原区负责管辖,首
  • 斯莱戈郡斯莱戈郡(County Sligo;爱尔兰语:Contae Shligigh),是爱尔兰的一个郡,位于爱尔兰岛西北海岸。历史上属康诺特省。面积1,837平方公里,2006年人口60,894人。首府斯莱戈。坐标:54°15′