assert.h

✍ dations ◷ 2025-10-16 11:43:47 #

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

相关

  • 细菌性疾病病原细菌(英语:Pathogenic bacteria)是指能导致传染病的细菌病原体。本条目主要针对会造成人类传染病的病原细菌。大部分的细菌是无害,甚至是有益的,不过有些细菌是病原体。像结
  • 符号本条目提供按元素序号排列的元素列表。
  • 陶罐炖煮陶罐炖煮(英语:Jugging或法语:Civet)是一种把整只动物在紧密盖好的容器(例如:陶罐、陶壶、砂锅等)内炖煮一段长时间的煮食方法。这种煮食方法主要是用于处理打猎时的猎物或鱼,经处理
  • 大型多人在线角色扮演游戏大型多人在线角色扮演游戏(英语:massively multiplayer online role-playing game,缩写:MMORPG)为电子游戏的一种,是电子角色扮演游戏按电子游戏人数分类分别出来的一种网络游戏。
  • 国际大学生体育联盟国际大学运动总会(法语:Fédération internationale du sport universitaire,缩写FISU,简称国际大学体总)是负责协调超过100个国家的大学生体育活动的国际组织,总部设于瑞士的洛
  • 阿灵顿市阿灵顿(Arlington)是位于美国得克萨斯州塔兰特县的一座城市。作为达拉斯-沃斯堡-阿灵顿都会区的一部分,阿灵顿距离达拉斯市中心约19公里,距离沃斯堡市中心约32公里。根据美国人
  • 美国面积最大的县以下为美国中100个面积最大的县份列表。此列表是根据美国人口调查局2000年人口普查统计显示的资料来计算县份的总面积。一个县份的总面积即是其陆地面积和水域面积的总和。
  • 鲹科鲹科(学名:Carangidae)为辐鳍鱼纲鲈形亚类鲹形系鲹形目(或传统分类鲈形目鲈亚目)的一个科。本科都分布在全世界的温带及热带沿岸或外洋海域,也有少数几种能够入侵淡水流域。由表层
  • 水仙水仙(学名: subsp. )为多花水仙的一个亚种,分布于东亚的海滨温暖地区。漳州水仙、普陀水仙、崇明水仙为中国最佳三大水仙品种。水仙是很欢迎的年花,因为其在农历新年期间开放,象征
  • 电的流体理论电的流体理论假定,电磁学里的各种现象可以用电流体来表述。在十八世纪,双流体理论与单流体理论是两种著名的流体理论。查尔斯·笃费(英语:Charles Du Fay)做实验于1733年发现,假若