assert.h

✍ dations ◷ 2025-07-06 03:16:40 #

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

相关

  • 食品工业食品产业是全球不同行业的综合体,这些产业提供了由世界人口消费的食物能量的。只有那些自给自足型农业可以被认为不在现代食品产业之内。食品产业包括:依据2009年2月28日第十
  • 罗洛·梅罗洛·梅(英语:Rollo May,1909年4月21日-1994年10月22)是一位美国存在主义心理学家。他在1969年期间撰写了具有影响力的书《爱与意志》。他经常被和人本主义心理学与存在主义哲学
  • 绵枣儿属绵枣儿属 是天门冬科风信子亚科中的一个属,本属植物为多年生球根植物,约有90多种,原生在欧洲、亚洲和非洲的森林、沼泽、和沿海滩涂地带,多数在春季开花,也有少数品种在秋季开花,
  • 马王堆汉墓马王堆汉墓位于中国湖南省长沙市芙蓉区东屯渡乡(今芙蓉区马王堆街道)境内,临浏阳河,为西汉时期长沙国丞相利苍、利苍妻子辛追(有说法称其为“避”)及其子利豨或兄弟三座墓葬。1971
  • 贝克特萨缪尔·贝克特(Samuel Beckett,1906年4月13日-1989年11月10日),20世纪爱尔兰、法国作家,创作的领域包括戏剧、小说和诗歌,尤以戏剧成就最高。他是荒诞派戏剧的重要代表人物。1969
  • 第四航空队第四航空队(英语:Fourth Air Force)是美国空军预备役司令部下属的一个编号航空队,指挥部位于加利福尼亚州的March空军基地。
  • 李煦李煦(?-?),满洲正白旗人,祖籍山东莱州府。清康熙、雍正年间政治人物。父李士桢,本姓姜,崇祯十五年(1642年)被清兵掳去,过继给满洲正白旗佐领李西泉为子,遂改姓李。李家为内务府的包衣,接近
  • 黑醋黑醋或乌醋是酿造醋的一种,多以糯米配上新鲜蔬菜水果(如红萝卜、姜、洋葱)、香辛料、调味料酿制而成。台湾乌醋与日本乌醋源自英国伍斯特醋。著名的黑醋如山西老陈醋、镇江香醋
  • 魏博魏博,唐朝地名。“魏博”一词原为魏博节度使简称,代指魏博地区。《元和郡县图志》载魏博节度使所辖州六:魏州、相州、博州、卫州、贝州、澶州。县四十三。治所在魏州(今河北省邯
  • 绝地战警:迈阿密行动《绝地战警:迈阿密行动》(英文:Bad Boys: Miami Takedown)是一个改编自电影《绝地战警2》的第一与第三人称射击游戏,由布里提兹游戏(Blitz Games)开发,帝王国际(Empire Interactive)、