assert.h

✍ dations ◷ 2025-11-29 06:43:52 #

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

相关

  • 升部在西文字体排印学中,升部(英语:Ascender)是指一个字体的字母中向上超过主线笔画的部分,也就是比x字高还要高的部分,是字体设计中一个重要的组成部分。升部,和降部笔画可以增强单词
  • 哈尔茨国家公园哈尔茨国家公园是德国的国家公园,由下萨克森和萨克森-安哈尔特负责管辖,始建于2006年1月1日,面积247平方公里,海拔高度230至927米。
  • 女性主义电影理论女性主义电影(英语:feminist film)上世纪60年代末至70年代初,随着女权电影理论的发展,出现了大量主张或阐明女权主义观点的女权主义电影。20世纪60年代,由于政治辩论和所谓的“性
  • 爱琴海文明爱琴文明是希腊及爱琴海沿岸古代文明的总称,是希腊乃至西方文明的源头。前期较重要的出土遗址为克里特岛上的克诺索斯宫,这一文明被称作米诺斯文明。同时代希腊地区也有基克拉
  • 乾隆下江南清朝乾隆皇帝曾于乾隆十六年(1751年)、二十二年(1757年)、二十七年(1762年)、三十年(1765年)、四十五年(1780年)、四十九年(1784年)六次巡幸江南,每次一般都要到扬州府、苏州府、杭州府、
  • 杜象亨利-罗伯特-马塞尔·杜尚(法语:Henri-Robert-Marcel Duchamp 法语发音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucid
  • 飞跃进步男艺员万千星辉颁奖典礼飞跃进步男艺员每年由电视广播有限公司颁发,给予年度该公司最受观众喜爱及欢迎的电视剧中男演员之荣誉。最受欢迎电视男角色于2002年创立。此奖项前身为本年
  • 沈阳京剧院沈阳京剧院是中国大型京剧表演团体之一,于1947年成立,现位于沈阳市于洪区鸭绿江街10号。剧院的武戏较为突出,在国内京剧行业内处于领先地位,唐(韵笙)派艺术更是一大特色,有“南麒
  • 2014年新西兰羽毛球大奖赛2014年新西兰羽毛球大奖赛为2014年度的新西兰羽毛球公开赛,是2014年世界羽联大奖赛的其中一站。本届赛事于2014年4月15日至4月19日在新西兰奥克兰内的北岸活动中心(North Shor
  • 韩昇延韩昇延(朝鲜语:한승연 ,英语:Han Seung Yeon,1988年7月24日-),艺名昇延(朝鲜语:승연 ,英语:Seung Yeon),韩国女艺人,被经纪公司DSP Media在首尔发掘并进入旗下当练习生,以女子团体Kara于20