assert.h

✍ dations ◷ 2025-12-09 17:16:50 #

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

相关

  • Α-葡聚糖α-葡聚糖(alpha glucan)是指由α-葡萄糖聚合形成的聚糖。淀粉(包括直链淀粉和支链淀粉)、糖原均属于α-葡聚糖。在淀粉和糖原分子中,主链的不同单体之间由α-1,4-糖苷键聚合而成
  • 马鞭草马鞭草(学名:Verbena officinalis)为马鞭草科植物。多年生直立草本植物,基部木质化;四方形茎;倒卵形至长椭圆形的叶子对生,边缘有锯齿,叶片通常3深裂,大裂片复分小裂;穗状花序顶生或腋
  • 咖啡文化咖啡文化是指与咖啡有关的社会气氛,尤其是意式咖啡,其扮演着社会润滑剂的角色。此专有名词也指咖啡的流行与采纳,广泛而言,其亦是文化所带来的消费刺激。此环绕着咖啡与咖啡馆的
  • 纽伦堡法案纳粹集中营转移营比利时:布伦东克堡垒 · 梅赫伦转移营法国:居尔集中营 · 德朗西集中营意大利:波尔查诺转移营荷兰:阿默斯福特集中营 · 韦斯特博克转移营挪威:法斯塔德集中营部
  • 性腺肿瘤伴有环形小管性腺肿瘤伴有环形小管(英语:Sex cord tumour with annular tubules, SCTAT),是一种罕见卵巢肿瘤,属于性腺间质肿瘤下的一类。性腺肿瘤伴有环形小管,会与黑斑息肉病或其他分散的疾
  • 生态多样性生态系统多样性(英语:Ecosystem diversity),可指一个地区的生态系统层次上的多样性,或一个生物圈中的各种生态系统。
  • 吴鸿麒日治台湾(1902-1945)吴鸿麒(1902年-1947年),是一位祖籍福建汀州龙岩、生于台湾中坜的客家籍人物。曾于台湾日治时期担任教师、律师,二战结束后任台湾台北地方法院民事庭及台湾高等
  • 尤里·布朗芬布伦纳尤里·布朗芬布伦纳(英语:Urie Bronfenbrenner,1917年4月29日-2005年9月25日)美国著名的心理学家, 他的生态系统理论为人所熟悉。 他也是Head Start项目的创始人之一,这个项目研究
  • 2-磷酸甘油酸2-磷酸甘油酸(英语:2-phosphoglycerate)是生物界中常见的化学分子,一般出现在糖解作用与糖质新生作用的过程中。在糖解作用中,2-磷酸甘油酸是3-磷酸甘油酸在磷酸甘油酸变位酶(Phos
  • 阿波罗15号在月表的活动阿波罗15号月球表面活动(Apollo 15 lunar surface operations)是指1971年7月30日至8月2日期间,阿波罗15号指令长大卫·斯科特和登月舱驾驶员詹姆斯·艾尔文首次使用月球车,从位