assert.h

✍ dations ◷ 2025-11-26 10:40:11 #

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

相关

  • 厂部,就汉字索引来说,是为部首之一,康熙字典214个部首中的第二十七个(两划的则为第二十一个)。简体字将廠字(俗作厰)简化为厂,两字同形。厂部归于两划部首。厂部通常是从左上方为部
  • 迪拜国际机场迪拜国际机场(阿拉伯语:مطار دبي الدولي‎,IATA代码:DXB;ICAO代码:OMDB)是阿拉伯联合酋长国迪拜的主要机场,为阿联酋航空的枢纽港。可起降目前所有的机型,是中东地区重
  • 泰姬玛哈酒店泰姬玛哈酒店(Taj Mahal Palace & Tower)是位于印度孟买可拉巴地区印度门旁边的一家有名望五星级豪华旅馆,拥有565个房间。它是泰姬陵酒店集团旗下的一分子,具有百年历史的经典
  • 李宗恩李宗恩(1894年9月10日-1962年3月),字伯纶,江苏省武进县人,热带病学医学家及医学教育家。其父李祖年为甲午恩科进士,入翰林,曾为山东知县。幼时就读于其父所办之新式小学,后来进入上海
  • 美国最长河流列表 (依干流长度排序)表列河流中有七条流越两国或形成国界。育空河和哥伦比亚河等两条河流发源于加拿大,随后流入美国。牛奶河、圣劳伦斯河和北红河等三条河流则始于美国,而后流入加拿大。上述河流
  • 哲学分析哲学分析是西方哲学界在哲学分析传统中涉及“拆解”(例如: 分析)的哲学议题最典型的众多应用技巧的一个通称。其中,几乎无争议地将概念分析视为最卓越的一种技巧。依靠对事物
  • 清软颚边塞擦音清软颚边塞擦音(Voiceless velar lateral affricate)是一种不寻常的辅音,被使用于一些口语中。其国际音标(IPA)表示为⟨kʟ̝̊⟩。此音见于一些高加索地区语言,并在一些南非和东
  • 金球奖最佳外语片金球奖最佳外语片(Golden Globe Award for Best Foreign Language Film)是金球奖其中一个奖项,原本称为金球奖最佳外国片(Golden Globe Award for Best Foreign Film),自1987年开
  • 哈基姆布尔乌帕齐拉 (迪纳杰布尔县)哈基姆布尔乌帕齐拉(孟加拉语:হাকিমপুর,英语:Hakimpur Upazila)是孟加拉国迪纳杰布尔县的一个乌帕齐拉,位于朗布尔专区的迪纳杰布尔县。。据1991年孟加拉国人口普查(英语:19
  • 丁祖诒丁祖诒(1939年8月29日-2012年3月12日),中华人民共和国民办教育家、西安翻译学院院长及创办者。丁祖诒曾任工人、工程师及中学教师。1987年创办西安翻译学院。2004年,方舟子指责丁