C库中的宏assert允许将诊断信息写入标准错误文件。也就是它可以用于在C程序中添加诊断程序。

声明:
void assert(int expression);

expression——可以是变量或任意C表达式。如果expression的计算结果为TRUE,则assert()不执行任何操作。如果expression的计算结果为FALSE,则assert()在标准错误流(用于显示错误消息和诊断的标准错误流)上显示错误消息,并中止程序执行。

举个例子:see: assert geeksforgeeks

#include <stdio.h>
#include <assert.h>int main()
{int x = 7;/* Some big code in between and let's say xis accidentally changed to 9 */x = 9;// Programmer assumes x to be 7 in rest of the codeassert(x==7);/* Rest of the code */return 0;
}

这个程序的执行结果是:
Assertion failed: x==7, file test.cpp, line 13
This application has requested the Runtime to terminate it in an unusual
way. Please contact the application’s support team for more information.

参考资料:

  1. https://www.geeksforgeeks.org/assertions-cc/
  2. https://www.tutorialspoint.com/c_standard_library/c_macro_assert.htm

C/C++语言中的assert函数用法相关推荐

  1. c语言中rand()的作用,c语言中的rand()函数用法

    rand() rand()函数作用:用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()函数返回:返回一个范围在 ...

  2. c语言使用free释放指针报错,C语言中的free函数用法执行机制分析

    free函数是C语言或者C++程序语言的常用函数,那么free函数有什么用途呢?free函数又怎么用呢?C语言中的free函数用法执行机制分析,一起来看看free内部的机制以及和delete的对比分析 ...

  3. R语言中的apply函数用法

    刚开始接触R语言时,会听到各种的R语言使用技巧,其中最重要的一条就是不要用循环,效率特别低,要用向量计算代替循环计算. 那么,这是为什么呢?原因在于R的循环操作for和while,都是基于R语言本身来 ...

  4. c语言中的warn函数用法,关于c ++:MSVC等同于__attribute__((warn_unused_result))?

    我发现__attribute__ ((warn_unused_result))作为鼓励开发人员不要忽略函数返回的错误代码的一种非常有用的方法,但是我需要将它与MSVC以及gcc和gcc兼容的编译器(例 ...

  5. linux下C语言中的flock函数用法

    表头文件  #include<sys/file.h> 定义函数  int flock(int fd,int operation); 函数说明  flock()会依参数operation所指 ...

  6. C语言中的strtok函数用法

    **strtok函数是string.h库中的函数 原型: char *strtok(char s, const char delim); strtok()用来将字符串分割成一个个片段.参数s指向欲分割 ...

  7. c语言中assert函数,assert()函数用法总结

    assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include void assert( int expression ); assert的作用是现计算表达式 ...

  8. C语言 SLEEP函数不起作用,C语言中的sleep() 函数 sleep函数的具体用法

    导航:网站首页 > C语言中的sleep() 函数 sleep函数的具体用法 C语言中的sleep() 函数 sleep函数的具体用法 相关问题: 匿名网友: 关于sleep()函数在windo ...

  9. c语言中 char怎样用,C语言中char*和char[]用法区别分析

    C语言中char*和char[]用法区别分析 本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很 ...

最新文章

  1. 一定是h的方式不对阅读_20T/H中水 超滤回用处理系统
  2. 【栈】【232. 用栈实现队列】【简单】
  3. spring框架学习笔记(八)
  4. 高等组合学笔记(四): 生成函数应用, Catalan问题
  5. QQ for Linux启动闪退问题
  6. mysql 窗口函数_7、MySQL高级功能(窗口函数)
  7. ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
  8. mod sim tcp配置_ModSim32和ModScan32两种Modbus调试工具使用说明
  9. vue 动态 Prop
  10. 项目 编码规则(编写代码规则)
  11. virtualbox与windows共享文件夹
  12. LINUX IIO子系统分析之四 IIO EVENT介绍
  13. 挖掘:如何用迅雷下载4399小游戏站内的所有游戏
  14. Process Hacker 简单介绍
  15. 2016年终总结:一份来自跨界喜剧人的告白
  16. itop使用TF卡烧写uboot
  17. 【golang】处理jpeg图片压缩后方向发生变化问题
  18. 最新红旗linux系统,红旗Linux10系统下载
  19. 本科计算机教程,计算机本科教程
  20. WIFI模块中AP模式和STA模式的区别

热门文章

  1. go每日新闻(2021-05-21)——细谈Go变量的内存分布
  2. android之获取应用中的图片资源_获取找你妹中的图片资源
  3. 流程图系列:ProcessOn的快捷键及使用技巧
  4. #tree创建一棵树
  5. 【开场特效,视频剪辑,字幕】如何制作出一个比较优秀的视频,我的BiliBili视频发表之路
  6. eclipse复制代码连接数据库404_出现网页错误时,数字502、404等分别是什么意思?...
  7. 燕京理工学院java期末_2020-2021年燕京理工学院寒假放假时间安排及校历开学时间...
  8. android draw过程,android,view的执行过程onDraw、onSizeChanged,onFinishInflate
  9. 十六进制字符串转成整数
  10. VALSE2023-内容总结(正在更新)