assert.h

✍ dations ◷ 2025-12-07 02:18:18 #

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

相关

  • 新喀里多尼亚面积国家领袖国内生产总值(国际汇率) 以下资讯是以2011年估计新喀里多尼亚(法语:Nouvelle-Calédonie),位于南回归线附近,是法国在大洋洲西南部的一个特别集体(Collectivité sui ge
  • 氧化锌氧化锌是锌的氧化物,难溶于水,可溶于酸和强碱。它是白色固体,故又称锌白。它能通过燃烧锌或焙烧闪锌矿(硫化锌)取得。在自然中,氧化锌是矿物红锌矿的主要成分。人造氧化锌有两种制
  • 肌联蛋白肌联蛋白(肌巨蛋白)(英语:titin)是人体中是由肌联蛋白基因(TTN)编码的蛋白质。肌联蛋白是一个巨大的蛋白质,为肌肉收缩的弹性元件。它由244个结构域以及之间的肽序列连接组成。这些
  • 邻国数量各国邻国列表分别列出各国的陆上邻国与海上邻国的数量与其总和。海上邻国的标准是两国有相邻的领海、毗连区或专属经济海域。
  • 南港软件工业园区南港软体园区,全称南港软体工业园区,简称南软,是位于台湾台北市南港区的知识型工业园区。产业以软件IC设计、数位创意、生物科技及文化创意等知识密集型产业为主,允许支援性服务
  • 金华府坐标:22°59′51″N 120°11′48″E / 22.997391°N 120.196582°E / 22.997391; 120.196582台南金华府位于台南市中西区。于民国九十四年(2005年)11月7日公告为市定古迹,庙内主
  • 北京大学第六医院北京大学第六医院,是一所三级专科医院,位于北京市海淀区花园北路51号,创建于1942年。该医院亦是2002年由中国疾病预防控制中心精神卫生中心主导成立的北京大学精神卫生研究所的
  • 被子被子,古称衾,是床上用品的一种,其面积足以覆盖人体,多为长方形,一般用作睡眠时保持温暖。被子通常由被套或者被单包着棉絮而成,用棉做的被子叫做棉被。此外,毯子或称毛毯,作为寝具时
  • 让-吕克·南希让-吕克·南希(法语:Jean-Luc Nancy,1940年7月26日-),法国哲学家。南希1962年毕业于巴黎索邦大学哲学系,而后在斯特拉斯堡大学担任助理教授。1973年在知名哲学家保罗·利科(Paul Ri
  • .gu.gu为美国海外属地关岛国家及地区顶级域(ccTLD)的域名。A .ac .ad .ae .af .ag .ai .al .am .ao .aq .ar .as .at .au .aw .ax .az  B .ba .bb .bd .be .bf .bg .bh .bi .