assert.h

✍ dations ◷ 2025-12-01 13:52:48 #

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

相关

  • 桶孔覆垫桶孔覆垫(英语:Parenthesome)是担子菌门真菌的细胞中的一种显微结构,其形状就像一对括号,位于桶孔隔膜的两端。桶孔隔膜在菌丝里将细胞分开。桶孔覆垫的功能还未知,其组成部分也并
  • 警察数各国(包括地区)警察数量列表,依照其英文名字排列。此处的“警务人员”不特指一国内政部(公安部)管辖下的人员,还包括供职于国家安全机构、策反机构、谍报排查机构、特殊侦讯机构、
  • 钢材铁素体(α-Fe) 针状铁素体(acicular α-Fe) 奥氏体(γ-Fe) 马氏体 珠光体(88%铁素体,12%碳化三铁) 贝氏体 粒滴斑铁(珠光体及渗碳体的共晶    混合物,含碳量4.3%) 碳化三铁(Fe3C) β铁
  • 恐马恐马属(学名:Dinohippus;来自希腊语,原意即“可怕的马”)是一属已经灭绝的草食性马科生物。它们生活在中新世亥姆菲尔阶(英语:Hemphillian)到上新世赞克尔阶(英语:Zanclean)之间的北美
  • 叉尾鸟叉尾鸟属(学名:Schizooura)是一种生存于白垩纪早期的原始今鸟类。2012年首次发现于辽宁西部建昌县境内的早白垩世九佛堂组,因其叉形尾羽而得名。分析表明,叉尾鸟比建昌鸟和古喙鸟
  • 乔治亚格鲁吉亚自首次参加2007年欧洲歌唱大赛至2018年共参赛11次。格鲁吉亚原本准备参加2009年欧洲歌唱大赛,但当欧洲广播联盟要求其修改影射当时俄罗斯总理弗拉基米尔·普京的歌词
  • 4d10 5s2 5p1 2, 8, 18, 18, 3蒸气压 第一:558.3 kJ·mol−1 第二:1820.7 kJ·mol−1 主条目:铟的同位素 铟是一种化学元素,符号为In,原子序数49。铟是碱金属除外最柔软的金属,外
  • 伊达宗远伊达 宗远(公元1324年~约公元1385) 室町初期武将,父亲为伊达宗庆,母亲为藤原氏,幼名“后松丸”。出生时因父亲宗庆看见大鹏鸟,认为是吉兆,所以将宗远训练,受到天皇的赏赐,但由于当
  • 拉丁语短语列表 (C字头)此页列举著名拉丁语短语的中文翻译,例如和。因为古希腊的修辞和文学在古罗马崛起之前达到了巅峰,有些拉丁语短语本身也是翻译自希腊语短语。
  • 塞莱斯蒂亚塞莱斯蒂亚(也称为天国)是由伊利诺伊州的常绿公园的居民詹姆斯·托马斯·曼根创造的微型国家 。 塞莱斯蒂亚位于整个“ 外层空间 ”的组成部分,曼根代表人类声称这是为了确保没