assert.h

✍ dations ◷ 2025-09-18 23:10:49 #

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

相关

  • 咽喉痛咽喉痛(sore throat、throat pain,又称喉咙痛或喉痛),是指咽喉出现痛楚的症状,最主要的成因是咽喉炎(喉咙发炎),但可由其他原因引致,例如白喉和伤风感冒威胁。 服用非类固醇消炎止痛
  • 层粘连蛋白层粘连蛋白(英语:Laminin)是细胞外基质的高分子量(~400至约900kDa)蛋白质。 它们是基底层(英语:Basal lamina)(基底膜的一层)的主要成分,是大多数细胞和器官的一个蛋白质网络基础。
  • 皋陶皋陶(拼音:gāo yáo,注音:ㄍㄠ ㄧㄠˊ,南京官话:gao1 iao2,中古拟音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans
  • 超金属超金属是电子简并态物质的别称,是通常物质在超高压下形成的,由原子核紧密排列,浸泡在自由电子海洋中的物质状态。(普通金属是金属阳离子浸泡在自由电子海洋中的物质状态)最简单,也
  • 尤马蒂拉尤马蒂拉国家森林(英语:Umatilla National Forest)位于俄勒冈州东北部、华盛顿州东南部的蓝山山脉间,面积1.4 × 106英亩(5,700平方千米)。依照林地面积降序排列,森林分布于尤马蒂
  • IT信息技术(英语:Information Technology,缩写:IT)也称信息和通信技术(Information and Communications Technology,ICT),是主要用于管理和处理信息所采用的各种技术总称,主要是应用计算
  • 盘庚盘庚(?-?),中国商朝中后期君主。子姓,名旬。汤之九代孙,帝祖丁之子,帝阳甲之弟,《太平御览》引《史记》称其在位28年。夏商周断代工程把盘庚时期定在前1300年左右。商朝自中丁以来,国势
  • 贝莱德·阿卜杜勒-萨拉姆贝莱德·阿卜杜勒-萨拉姆(阿拉伯语:بلعيد عبد السلام‎,Belaid Abdessalam,1928年7月20日-)是一位阿尔及利亚政治家。在阿尔及利亚争取从法国独立期间,他是民族解放
  • 即非如一即非如一(1616年6月27日-1671年6月26日),俗姓林,字即非,福建省福州府福清县人,江户时代前期从明朝东渡日本的临济宗黄檗派(黄檗宗)僧人。父亲林英,母亲万氏。为宋代士大夫林希逸的后裔
  • 2元人民币人民币2元,最早发行于1948年12月1日,共发行过四个版本。2018年5月1日起,第四套人民币中的2元券停止流通,已无正在发行的人民币2元券。第二套人民币的2元券发行于1955年3月1日,正