assert.h

✍ dations ◷ 2025-02-23 20:19:48 #

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

相关

  • 产金菌门产金菌门(Chrysiogenetes)是一支独特的细菌,目前只发现了一个种,即砷酸产金菌(Chrysiogenes arsenatis)。它具有独特的生活方式和生化过程。它经营化能无机自养,利用对绝大多数生物
  • 边缘系统边缘系统(Limbic system)指包含海马体及杏仁体在内,支援多种功能例如情绪、行为及长期记忆的大脑结构。这种被描述为边缘系统的脑部结构与嗅觉结构相近。术语“limbic”源自拉
  • 中原中原是汉族传统地域概念,是指以中国河南省为核心延及黄河中下游的广大地区,这一地区是华夏文明的发源地之一,又名河洛、中土、中州。后被汉族视为天下中心。在中国古代的地缘思
  • 张洪杰张洪杰(1953年9月22日-)是一位中国化学家。生于吉林榆树,籍贯吉林长春。1978年毕业于北京大学化学系,1985年在中国科学院长春应用化学研究所获硕士学位,1993年在法国波尔多第一大
  • 加拿大皇家学会加拿大皇家学会(英语:The Royal Society of Canada,简称RSC;法语:La Société royale du Canada,简称SRC)是加拿大的国家学术研究机关。由第四任加拿大总督罗恩侯爵提议成立,并于18
  • 后王朝时期后期埃及是古埃及本土统治者在位的最后一个兴盛时期。在第三中间期,埃及陆续受努比亚第25王朝及崛起的新亚述帝国统治,地方总督普萨美提克一世与672年建立起第二十六王朝,定都
  • 东亚和东南亚人群的Y染色体DNA单倍型类群这里列出的是东亚人类Y染色体DNA单倍型类群比例,数据选取以样本量大者为优。
  • 云加鸟云加鸟(学名Yungavolucris)是一属反鸟亚纲鸟类。其下只有Y. brevipedalis一个物种,生存于白垩纪晚期马斯特里赫特阶。其化石是在阿根廷发现。由于云加鸟的遗骸只发现了6个跗跖
  • 天文学者天文学家是研究天文学、宇宙学、天体物理学等相关学科的科学家。因为有些哲学家、物理学家、数学家对天文理论有着不可忽视的影响,所以下面的列表中也包括这些人。当代的天文
  • 弗里德里希·安东·威廉·米克尔弗里德里希·安东·威廉·米克尔(Friedrich Anton Wilhelm Miquel,1811年10月24日-1871年1月23日)为荷兰植物学家。1835年至1846年任鹿特丹植物园主管,1846年至1859年任阿姆斯特