assert.h

✍ dations ◷ 2025-11-23 20:30:46 #

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

相关

  • 三位一体三位一体(拉丁语:Trinitas,又译为三一真神、天主圣三、三一神、圣三一、三一神论),基督教神学术语,是基督宗教神YHWH(新教常汉译为上帝或耶和华,天主教常汉译为天主雅威)的神学理论,建
  • 方仙道方仙道或神仙家是在春秋、战国时期形成的一类专门从事方术、方技等道术的人,时称方士。包括天文、医学、神仙、占卜、相术、堪舆等技艺并宣传服食、祭祀可以长生成仙的人。据
  • 蒂宾根大学210百万欧元(不含医疗开支)蒂宾根大学 (Eberhard Karls Universität in Tübingen),,又译图宾根大学、杜宾根大学,位于德国蒂宾根,是德国最古老的大学之一,在自然科学和人文科学领域
  • 达洛尔坐标:14°14′N 40°18′E / 14.233°N 40.300°E / 14.233; 40.300达洛尔(阿姆哈拉语:ዳሎል,转写:Dallol)是一个位于埃塞俄比亚北部阿法尔州第二管理区的屯垦区,海拔低于海平面约
  • 林德集团林德集团 (英语:The Linde Group, 德语:Linde AG)是一家位于德国慕尼黑的化学工业集团。由卡尔·冯林德创建于1879年,按市场份额是全球最大的工业气体集团,在德意志交易所和瑞士
  • 阿根廷国家橄榄球队阿根廷国家橄榄球队是代表阿根廷参加各种国际橄榄球赛事的球队,昵称是美洲狮(Pumas)。
  • 肌球蛋白轻链肌球蛋白轻链(英语:Myosin light chain)是肌球蛋白的一个亚基。肌球蛋白轻链拥有自己的肽链,这点与重链不同。它们不被包括在肌球蛋白家族中,但对形成肌球蛋白酶催化超分子复合体
  • 三世间三世间再与“百界千如”配合即构成“三千世间”,这也是天台宗“一念三千”的思想基础,《摩诃止观》:“夫一心具十法界,一法界又具十法界,即成百法界,一界具三十种世间,百法界即具
  • 2012年刚果东部冲突 3月23日运动 涉嫌的支持者:  卢旺达 200人死 3人死2012年刚果东部冲突是2002年刚果民主共和国北基伍省在第二次刚果战争后的新冲突。2012年4月,图西族士兵开始反抗刚果民
  • .pt.pt为葡萄牙地区国家和地区顶级域(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 .bj .bm