assert.h

✍ dations ◷ 2025-12-07 23:35:02 #

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

相关

  • 豇豆花叶病毒豇豆镶嵌病毒, SB isolate豇豆花叶病毒(Cowpea Mosaic Virus)又名豇豆黄花叶病毒,分布在尼日利亚、古巴和美国等国。苏里南、古巴和美国等地寄主范围很窄,在豆科植物以外就很
  • N Engl J Med《新英格兰医学杂志》(英语:The New England Journal of Medicine;简称 NEJM)是由美国麻省医学协会(英语:Massachusetts Medical Society)所出版的同行评审性质之医学期刊。它也是
  • 各国犹太教本文论述了犹太教的实践以及犹太人在各国的生活情形。详细见各条目
  • 华人四大节日汉族四大传统节日,或中国汉族四大传统节日、中国传统四大节日,在各地意义不同。一般是指汉族传统会一家团聚共度的四个节日:即春节(农历新年)、清明节、端午节、中秋节。若舍去清
  • 乔治·科瓦尔乔治·科瓦尔(俄语:Жорж (Георгий) Абра́мович Кова́ль,IPA:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","
  • ISO 3166-2国际标准化组织(ISO)的ISO 3166-2国际标准是ISO 3166的第二部分,定义约3700个国家或地区的主要行政区代码。每一行政区代码格式为“国家缩写-行政区代码”,国家缩写是ISO 3166-1
  • 中华人民共和国出版社下面为中国出版社的ISBN前缀号,均以ISBN 978-7开头。下表省略ISBN 978-7。
  • 锯缘青蟹锯缘青蟹(学名:Scylla serrata),也叫蝤蛑、蝤蝥、青蟹、黄甲蟹,是梭子蟹科青蟹属的动物。在福州和台湾,雄性、未受精的雌性、受精后的雌性锯缘青蟹又分别称为“菜蟳”、“处女蟳”
  • 编码理论编码理论(英语:Coding theory)是研究编码的性质以及它们在具体应用中的性能的理论。编码用于数据压缩、加密、纠错(英语:error-correction),最近也用于网络编码中。不同学科(如信息
  • 保罗·阿里金保罗·阿里金(英语:Paul Arizin,1928年4月9日-2006年12月12日),美国前职业篮球运动员。1950年至1962年效力于NBA费城勇士队,号称是跳投技术的发明者,NBA50大巨星之一,1956年曾率队夺