assert.h

✍ dations ◷ 2025-07-27 12:26:22 #

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

相关

  • 笑气一氧化二氮或氧化亚氮(英语:Nitrous oxide),无色有甜味气体,又称笑气,是一种氧化剂,化学式N2O,在一定条件下能支持燃烧,但在室温下稳定,有轻微麻醉作用,其麻醉作用于1799年由英国化学家
  • 强尼·艾萨克森约翰·哈迪·“约翰尼”·伊萨克松(英语:John Hardy "Johnny" Isakson;1944年12月28日-),是一位美国共和党政治人物,现任乔治亚州美国参议院议员、前乔治亚州美国众议院议员及前乔
  • 类二十烷酸类花生酸(英语:Eicosanoid,又称为类二十烷酸或是类花生油酸)是由含二十个碳的多元不饱和脂肪酸衍生而来的脂类中的一个家族,这类化合物都含有二十个碳原子,因此又被称为“类二十烷
  • 约翰·卫斯理背景 新教 宗教改革 抗辩五条 加尔文主义与阿民念主义争论史人物 雅各布斯·阿民念 西蒙·伊皮斯科皮乌斯 胡果·格老秀斯 抗辩派 约翰·卫斯理学说 全然败坏 有条件的拣选
  • 查尔斯·汤森查尔斯·汤森(英语:Charles Townshend,1725年8月28日-1767年9月4日),是英国的一位政治家,曾担任英国的财政大臣、贸易委员会主席,他提出的《汤森法案》被认为是引发美国革命的主要原
  • 轻型货车轻型货车(日语:軽ボンネットバン)意指1980年代日本轻型车的车体风格主流,亦属于掀背车的一种,一般略称成“轻Bonvan(軽ボンバン)”。虽然轻型货车跟轿车一样前座2人、后座2人,但为了
  • 卡尔·冯·马齐乌斯卡尔·冯·马齐乌斯(全名卡尔·弗里德里希·菲利普·冯·马齐乌斯,德语:Carl Friedrich Philipp von Martius,1794年4月17日-1868年12月13日),是德国植物学家和探险家。 他出生于
  • 2004年美国电影学会奖2004年美国电影学会奖(英语:American Film Institute Awards 2004)为表彰2004年年度最佳前10大电影与电视剧。
  • 夜空的彼岸日本唱片协会百万销量“夜空的彼方”是SMAP的第27张单曲,于1998年1月14日由胜利娱乐发行。除了川村结花翻唱外,还有以下歌手:1月 CRAZY GONNA CRAZY(trf) | 2月 奇迹的地球(桑田佳
  • 尼古拉·叶菲莫维奇·克鲁奇纳尼古拉·叶菲莫维奇·克鲁奇纳(俄语:Николай Ефимович Кручина,1928年5月14日-1991年8月26日),苏联的财政官员,苏共中央审计委员会委员,曾担任苏共农业部副部