assert.h

✍ dations ◷ 2025-06-09 13:46:27 #

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

相关

  • 正常窦性节律在一周期的心脏律动中,如果心肌的去极化从窦房结开始,则称为窦性心律(英文:sinus rhythm)。其特点是心电图(ECG)中展示方向正确的P波(英语:P wave (electrocardiography))。窦性心律是
  • 心肌症心肌病变(英语:cardiomyopathy)是一组会影响心肌之疾病的通称。早期的症状可能很轻微,甚至没有症状。有些会是因为心脏衰竭而有呼吸困难、容易疲倦或脚部水肿的情形,可能会有心律
  • 耐丝菌素6-dideoxy-β-L-mannopyranosyl)oxy]-1, 3,4,7,9,11,17,37-octahydroxy-15, 16,18-trimethyl-13-oxo-14, 39-dioxabicyclononatriaconta-19, 21,25,27,29,31-hexaene-36-ca
  • 本·贝拉艾哈迈德·本·贝拉(阿拉伯语:أحمد بن بلّة‎‎;1916年12月25日-2012年4月11日,阿尔及利亚军人、革命家及政治家,民族解放阵线(FLN)领袖,1962年至1965年任阿尔及利亚总统,被
  • 太平洋联盟太平洋联盟(Pacific League)是日本职棒所属的两个联盟之一,成立于1950年。目前拥有6支球队。50 别当薫 | 51 山本一人 | 52 柚木进 | 53 冈本伊三美 | 54 大下弘 | 55 饭田德治
  • 锡利斯特拉锡利斯特拉(保加利亚语:Силистра)是位于保加利亚东北部多布罗加的一个港口城市。靠近罗马尼亚边境。锡利斯特拉是锡利斯特拉州的首府所在地。也是南多布罗加的一个重要
  • 常驻联合国大使美利坚合众国驻联合国大使(英语:United States Ambassador to the United Nations)是美国常驻联合国代表团的领导人。该职位较为正式的名称是美利坚合众国常驻联合国代表(the Pe
  • 整合分类学资讯系统整合分类学资讯系统(英语:Integrated Taxonomic Information System,缩写作 ITIS)是一个专门提供生物物种分类讯息的机构。前身是设立于1996年的一个团体,属于美国联邦政府商务部
  • 清小舌塞擦音清小舌塞擦音是一种辅音,被使用于一些口语中,国际音标(IPA)写作⟨q͡χ⟩或⟨q͜χ⟩,其等价的X-SAMPA音标则记作q_X。音标中间的弧线可以省略,则其可以分别改写作⟨qχ⟩(IPA)与qX(X
  • 胜岩站胜岩站(韩语:승암역)是朝鲜民主主义人民共和国咸镜北道镜城郡胜岩劳动者区的一个铁路车站,属于平罗线。平罗线