assert.h

✍ dations ◷ 2025-11-27 15:11:58 #

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

相关

  • 骷髅总队纳粹集中营转移营比利时:布伦东克堡垒 · 梅赫伦转移营法国:居尔集中营 · 德朗西集中营意大利:波尔查诺转移营荷兰:阿默斯福特集中营 · 韦斯特博克转移营挪威:法斯塔德集中营部
  • 箭石箭石类动物(学名:Belemnoidea),旧作箭石下纲,是一个已灭绝头足纲生物的分支,生活在泥盆纪至白垩纪之间。箭石在许多方面都与现代的鱿鱼相当接近,而且与现代的乌贼关系密切。箭石也
  • 马哈奇卡拉马哈奇卡拉(俄语:Махачкала́',俄语拉丁字母拼写:Makhachkala,阿瓦尔语:МахIачхъала)是俄罗斯达吉斯坦共和国的首府,东临里海。2002年人口462,412人。2010年人口
  • 约瑟夫·E·约翰斯顿Seminole Wars美国南北战争约瑟夫·艾格勒斯顿·约翰斯通 (1807年2月3日-1891年3月21日)是一位19世纪的美国职业陆军军官,美国南北战争爆发前于美国陆军中服役并在美墨战争(1846
  • 盘庚盘庚(?-?),中国商朝中后期君主。子姓,名旬。汤之九代孙,帝祖丁之子,帝阳甲之弟,《太平御览》引《史记》称其在位28年。夏商周断代工程把盘庚时期定在前1300年左右。商朝自中丁以来,国势
  • 人类演化这个词,这个用来称呼人类所属的生物属名,是拉丁文称呼“人类”的字词。它最初是由卡尔·林奈选来用在他的分类系统中。英文的“人类”一字human源自于拉丁文的,这是的形容词。
  • 澳洲东岸澳洲东岸(East Coast of Australia),又被称为澳洲东部地区(Eastern states of Australia)以及南太平洋海岸,是指位于澳洲大陆东部的海岸地区,东向面临南太平洋,北部面向太平洋赤道地
  • 斡亦剌歹斡亦剌歹(蒙古语:.mw-parser-output .font-mong{font-family:"Menk Hawang Tig","Menk Qagan Tig","Menk Garqag Tig","Menk Har_a Tig","Menk Scnin Tig","Oyun Gurban Ulus
  • 白粉菌目见内文白粉菌目(学名:Erysiphales)是子囊菌门锤舌菌纲的一目,该目仅有白粉菌科(Erysiphaceae)一单科。本目真菌通常寄生在植物表面,其产生的大量分生孢子梗与分生孢子使植物表面看
  • 1984年欧洲超级杯1984年欧洲超级杯由尤文图斯对阵利物浦,前者以2-0夺冠。