assert.h

✍ dations ◷ 2025-11-20 19:41: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)。

相关

  • Unicode收录的文字Unicode 11.0收录了146种文字,包括89种现在仍在使用的文字和57种古代的已经不用的文字。
  • 斯氏疟蚊斯氏按蚊(学名:Anopheles stephensi)是疟蚊属的一种蚊子,是印度疟疾的主要传播者,也见于中国和印度之外的一些东南亚、南亚国家,2014年已入侵至吉布提。其下有两个亚种,即主要发现
  • 轮藻纲轮藻纲(Charophyceae)是绿藻中的一个分类,但它的分类地位仍有争议。有些植物学家认为可以将轮藻门和绿藻门纳入植物界中,但有些植物学家认为轮藻纲被编入绿藻门、链形植物门,或是
  • PChome商店街PChome商店街的前身是PChome Online网络家庭所成立的开店事业部,2010年4月分割设立,主要专注于商店街之网络开店平台服务业务。成立至今已有超过10万家的中小企业进驻开店,平台
  • Zinc3d10 4s22, 8, 18, 2蒸气压第一:906.4 kJ·mol−1 第二:1733.3 kJ·mol−1 第三:3833 kJ·mol−1 (主条目:锌的同位素锌(英语:zinc)是化学元素,化学符号是Zn,原子序数是30,相对原子
  • 虾夷共和国虾夷共和国是1868年12月日本幕末时代由新选组和部分旧江户幕府势力在虾夷箱馆(今北海道函馆市)成立的政权,其立场是抵抗新的明治政府,亦为亚洲最早透过选举制度组织政府的共和国
  • 阿富汗人民民主党总书记阿富汗人民民主党中央委员会总书记是阿富汗人民民主党的最高负责人,总书记也是阿富汗民主共和国作为一党制社会主义国家的党和国家最高领导人。总书记一般兼任国家革命委员会
  • 独立宫坐标:10°46′37″N 106°41′43″E / 10.77694°N 106.69528°E / 10.77694; 106.69528统一宫(越南语:Dinh Thống Nhất/.mw-parser-output .han-nom{font-family:"Nom Na Ton
  • 督占谷督占谷(马来语:Tok Janggut;1853年-1915年6月25日;中国大陆译为托章古特,又称督央谷、督江谷,意译胡须公),原名为哈芝莫哈末哈山·慕那斯,是一名于1915年在英属马来亚吉兰丹发动吉兰丹
  • 阿米哈伊·马扎尔阿米哈伊·马扎尔(英语:Amihai Mazar,希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL SR","K