assert.h

✍ dations ◷ 2025-12-06 06:08:39 #

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

相关

  • 超硬材料超硬材料(Superhard Material)是指硬度特别高的材料,可分为天然以及人造两种,前者主要包括天然的钻石(金刚石)、黑钻石,后者则包括聚合钻石纳米棒(ADNR)、化学气相沉积金刚石(CVDD)
  • 米兰科维奇循环米兰科维奇循环(Milankovitch cycles)是塞尔维亚的地球物理学家兼天文学家米卢廷·米兰科维奇的气候变化理论。米兰科维奇计算了过去数百万年地球的离心率、转轴倾角和轨道的
  • 骈文骈文是古代中国一种特有的文言文文体,其句式多由四字或六字(四六句)及对仗构成,故又称四六文、骈俪或骈体。具骈文特点而押韵者称骈赋。骈文在文学界上长期为广泛研究,然其因为文
  • 海胆亚门海胆亚门(学名:Echinozoa)是动物界棘皮动物门之下的一个亚门,其下物种的身体基本上是具有子午对称性的球体。
  • 亚历山大·塞维鲁亚历山大·塞维鲁(Alexander Severus,208年10月1日-235年3月18日,出生于今黎巴嫩,被杀于今德国美因茨),原名马库斯·朱利乌斯·格修斯·巴夏努斯·阿勒夏努斯(Marcus Julius Gessius
  • 六间房六间房(6.cn),于2006年5月25日在北京成立,是一家中国在线视频分享网站。2006年赞助拍摄胡戈的新电影《鸟笼山剿匪记》及《007大战黑衣人》并取得两剧首播权,引起较大反响,知名度获
  • 基奈峡湾基奈峡湾国家公园(英语:Kenai Fjords National Park)是位于美国阿拉斯加州中南部基奈半岛的一个国家公园,成立于1980年,面积669,984英亩(1,046.85平方英里;2,711.33平方千米)。除了
  • 地下水补给地下水补给是水从地表水向地下下移的水文过程。补水是水进入含水层的主要方法。这个过程通常发生在植物根部以下的包气带中,通常表现为水位表面的流量。自然地(通过水循环)和通
  • 神 (一神教)在一神教中,神(英语:God)被认为是至高无上的力量的存在,是宇宙万物的创造者,通常也是信仰的主要目标。一神教中有关神的概念有全知(无所不知)、全能(无所不能)、全在(无所不在),是永恒且
  • 固体火箭发动机固体火箭发动机的燃料和氧化剂是以固体状态直接储存在火箭发动机里面。目前在中小型的火箭发动机上面,固态火箭占据很大的比例。固态火箭发动机的燃料是直接安装在火箭的后部