assert.h

✍ dations ◷ 2025-12-04 11:17:03 #

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

相关

  • 利什曼原虫L. aethiopica L. amazonensis L. arabica L. archibaldi (disputed species) L. aristedesi L. (Viannia) braziliensis L. chagasi (syn. L. infantum) L. (Viannia) colo
  • 石棉沉滞症石绵沉滞症也称为石绵肺,是一种石绵纤维造成肺长期发炎及纤维化留疤(英语:Pulmonary fibrosis)的病症,症状有呼吸困难、咳嗽、喘鸣和胸痛,可能带来的并发症有肺癌、间皮瘤和肺性心
  • 过氧化物酶体过氧化物酶体(英语:peroxisome)是一种被称为酶体(英语:Microbody)的细胞器,几乎存在于所有真核细胞中。它们参与非常长链脂肪酸(英语:Very long chain fatty acid),支链脂肪酸(英语:Branc
  • 汉斯-迪特里希·根舍汉斯-迪特里希·根舍(德语:Hans-Dietrich Genscher,1927年3月21日-2016年3月31日),生于普鲁士萨克森省的莱德堡(现属哈雷市),是德国自由民主党内的一名重要人物。1969年—1974年担任
  • 捐款捐赠(英文:Donation),台湾俗称寄附,是作为公共或慈善用途之赠与或捐献,目的有多种。捐赠是施恩,付出自己所有,例如金钱、物资、服务、身体器官、时间、名誉等,去赞助受惠者,例如慈善机
  • 马戏团马戏团(英语:Circus),一般指包括有杂技、受训过的动物、小丑、魔术及其他特技的表演,以娱乐观众为目的。桓宽《盐铁论》有“马戏斗虎”的记载。唐代马戏表演“透剑门伎”,表演者乘
  • 德意志国防军德国国防军(德语:Wehrmacht)是1935年至1945年间纳粹德国的军事力量,军种包括陆军、海军和空军,纳粹党的武装党卫队单位有时也从属于国防军。德国防军与纳粹党卫军兵数比例约国7党
  • 苏仙区苏仙区,中国湖南省郴州市市级辖区之一,其下管辖2个街道、8个镇、9个乡。苏仙区因汉朝苏耽修炼成仙的传说而得名。
  • 原肾 (消歧义)原肾可以是多个生物结构的中文译名。
  • 夏默学院夏默学院(英语:Shimer College;/ˈʃaɪmər/ ),通常简称夏默。是一所位于美国伊利诺伊州芝加哥的小型、私立、博雅教育类本科院校。1853年,弗朗西丝·伍德·夏默(Frances Wood Shi