assert.h

✍ dations ◷ 2025-12-05 23:23:59 #

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

相关

  • 萨摩斯隧道萨摩斯隧道,或称为尤帕里内奥输水道(希腊语:Ευπαλίνειο όρυγμα),是公元前6世纪在爱琴海萨摩斯岛开凿的隧洞,以引来卡斯特罗山另一侧的泉水。据希罗多德记载,工程
  • .mw-parser-output ruby>rt,.mw-parser-output ruby>rtc{font-feature-settings:"ruby"1}.mw-parser-output ruby.large{font-size:250%}.mw-parser-output ruby.larger{fon
  • 爬行形类爬行形类(学名:Reptiliomorpha)是包括羊膜动物和与羊膜动物有共同祖先的四足动物(与羊膜动物的关系密切,但它们本身并不是羊膜动物)的演化支。 爬行形类中已废弃的分类“石炭蜥
  • 陈晓非陈晓非(1958年2月-),辽宁本溪人,地球物理学家。1982年取得中国科学技术大学地球物理专业学士学位。1985年取得中国地震局地球物理研究所硕士学位。1991年取得南加州大学地球科学
  • 退位逊位,或称退位,是指君主或其他统治者(通常特指世袭产生的统治者)放弃自己的职务和地位的行为,但并不等同于交出权力。在19世纪以前,各国的王公除非是战争失败或者政治失势,否则多半
  • 真驰龙类见内文真驰龙类(学名:Eudromaeosauria)是兽脚亚目驰龙科的一个演化支,它们是群体型较大的驰龙类恐龙,是主要猎食其他陆地脊椎动物的肉食性动物。真驰龙类繁盛于白垩纪,具有高度多
  • 辽东省辽东省是中国共产党在东北解放区设置的一个省份,延续至1954年。1949年4月21日,经东北人民政府批准,撤销安东省,及辽宁、辽北2省的一部,设立辽东省,省会安东市。1954年6月19日,经中
  • 新北市深坑区农会新北市深坑区农会,成立于1918年,其主要业务以信用、保险、推广、供销为经营服务重点。
  • 大苞点地梅大苞点地梅(学名:)为报春花科点地梅属下的一个种。
  • 毛尔维巴扎尔县毛尔维巴扎尔县(孟加拉语:মৌলভীবাজার জেলা)是孟加拉国锡尔赫特专区的一个县,位于该国东北部,南界印度。面积2,799.39平方公里。2001年人口1,612,374人。下分六个乡