assert.h

✍ dations ◷ 2025-12-07 14:46:32 #

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

相关

  • 脑血管疾病脑血管疾病(英语:Cerebrovascular disease)包含所有影响脑血管和脑部血液循环(英语:cerebral circulation)的医学症状疾病。脑血管疾病的常见病征为供应脑部氧气和养分的动脉受损(
  • 塔格糖塔格糖(英语:Tagatose)在分类上属于己糖与酮糖,为D-果糖四号位碳所对应的差向异构体,存在于一些树胶的水解产物中。甜度与蔗糖相似,而产生的热量只为蔗糖的三分之一,因此可作为低热
  • CD164876353599ENSG00000135535ENSMUSG00000019818Q04900Q9R0L9NM_006016、NM_001142401、NM_001142402、NM_001142403、NM_001142404、NM_001346500NM_016898NP_001135873、NP_0
  • 桑德拉·戴·奥康纳桑德拉·戴·奥康纳(Sandra Day O'Connor,1930年3月26日-),美国法学家。她是美国最高法院首位女性大法官,于2006年退休。奥康纳于1930年出生于得克萨斯州,在亚利桑那州一个偏远的牧
  • 国立传统艺术中心国立传统艺术中心(简称传艺中心),为中华民国文化部所属三级附属机构,主要任务为统筹、规划、推动台湾传统艺术的调查、保存、传习及推广工作,辖下拥有三个派出单位:国光剧团、台湾
  • C38.0/D15.1ICD-10 第二章:肿瘤,为WHO规定的各类已发现的肿瘤。恶性肿瘤(C00-C97)淋巴、造血和有关组织的恶性肿瘤 (C81-C96)原位肿瘤 (D00-D09)良性肿瘤 (D10-D36)动态未定或动态未知的肿瘤(D37
  • font style=text-decoration: overlined/font下夸克(down quark)是一种基本粒子。在所有的夸克中,下夸克是质量第二小的夸克,只比上夸克的质量大。组成原子核的中子与质子都是由下夸克与上夸克共同形成。下夸克属于第一代粒
  • 产品地理标志(产品)地理标志,又称(产品)地理标识,简称地标,是通过地理标识对地方特色农产品、工艺品等以产地命名的权利进行保护和控制保护它们竞争力和消费者的权益。地理标识产品保护制度的目
  • 堂 (长度单位)堂是中国南部的长度单位,主要用作形容路程的长度。一堂为10里,即5公里(以今1市里=0.5公里换算)。当时的人通常将十里路,说为一堂路。米(m) · 尧米(Ym) · 泽米(Zm) · 艾米(Em) · 拍米
  • 正理论正理论(梵语:Nyāya,直译:法、规则),古印度六派哲学之一,由婆罗门阿克沙巴德·乔达摩(即目足·瞿昙,Akṣapāda Gautama,公元1世纪)所创立,其理论的某些方面跟胜论(Vaiśeṣika)相似。其理