assert.h

✍ dations ◷ 2025-08-17 12:35:06 #

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

相关

  • 意大利天主教民主党天主教民主党(意大利语:Democrazia Cristiana,缩写为DC),前意大利执政党。1919年6月14日成立,原名意大利人民党,是一个天主教的基督教民主主义政党。人民党在1926年被贝尼托·墨索
  • 组氨酸解氨酶· cytoplasm· biosynthetic process组氨酸解氨酶(英语:Histidine ammonia-lyase,或称为组氨酸氨裂解酶或组氨酸酶)在人体中是一种由HAL基因编码的酶。组氨酸解氨酶将组氨酸转
  • 德国民法典《德国民法典》(德语:BGB, Bürgerliches Gesetzbuch)是德意志帝国从1881年开始研究编纂,于1896年8月公布,1900年1月1日施行的民法法典,为欧陆法系中最重要的民法典之一。历经德意
  • 杂合性丢失杂合性(英语:heterozygosity)缺失(英语:Loss of heterozygosity, 常简写为LoH)是指一种使得某一特定基因缺失的基因组变化。所有二倍体细胞,例如人类体细胞,有两套基因组,即分别来自
  • 潮州府潮州府,明朝时设置的府,清朝沿用。府城东有广济桥。明朝洪武二年(1369年)改潮州路为府,属广东行省,治所在海阳县(县城、府治属潮州市湘桥区),辖程乡、海阳、揭阳、潮阳四县,范围大约等
  • 网易相册网易相册(又被称为:163相册)为网易旗下的相册网站,因为其为第一个以“无限量空间”为名进行宣传,因此成为了中国大陆网民最喜欢的相册之一,后因为其速度突然下降以及多次程序错误
  • 亚伯拉罕·亚伯·方特斯亚伯拉罕 "亚伯" 方特斯(英语:Abraham Abe Fortas,1910年6月19日-1982年4月5日),自1965年出任美国最高法院大法官至1969年退休。方特斯来自田纳西州,后来成为了耶鲁的法学教授,还曾
  • 李攀龙《沧溟集》、《白雪楼诗集》、《古今诗删》、《唐诗选》李攀龙(1514年-1570年),字于鳞,号沧溟,山东历城(今济南)人,明朝官员、文学家,“后七子”之首。李攀龙九岁丧父,家贫,自奋于学。中
  • 肺炎支原体肺炎支原体(、霉浆菌性肺炎)是一种可导致肺炎的支原体细菌,也有机会导致冷凝集素症(英语:cold agglutinin disease)。这种由肺炎支原体引起的肺炎,又称作霉浆菌性肺炎,盛行于学龄儿
  • 2019冠状病毒病黎巴嫩疫情2019冠状病毒病黎巴嫩疫情,介绍在2019新型冠状病毒疫情中,在黎巴嫩发生的情况。2020年2月21日,黎巴嫩确诊首例病例,一名来自伊朗库姆的45岁女性病毒检测呈阳性,被转移到贝鲁特一