你不知道断言有多重要,对吧?转载本文请联系编程学习基地公众号。断言(assert)在编写代码的时候,我们总是会做出一些假设,而断言就是用来在代码中捕获这些假设的。断言表示为布尔表达式,程序员认为在程序的某个时刻为真。可以随时启用和禁用断言验证,因此可以在测试时启用断言,在部署时禁用断言。同样,在程序上线后,如果最终用户遇到问题,他们可以重新启用断言。简单的说,如果结果如你所料,那么OK,结果为真,继续运行。如果结果不符合预期,那么程序将抛出系统级错误(不是异常)并终止程序。assert()用法assert宏的原型定义在中,它的作用是在其条件返回错误时终止程序执行。原型定义:#includevoidassert(intexpression);//expression:布尔表达式assertexpression的作用是计算表达式expression,如果其值为false(即0),则先打印向stderr发送一条错误消息,然后通过调用abort终止程序。示例:#include#includeintmain(void){FILE*fp;fp=fopen("test.txt","w");//以可写方式打开一个文件,如果不存在,则创建同名文件assert(fp);//所以这里不会报错fclose(fp);fp=fopen("noexitfile.txt","r");//打开afileinread-onlymode如果文件不存在,将无法打开文件assert(fp);//所以这里出错fclose(fp);//程序永远不会执行到这里return0;}报错如下:控制台输出如下:Assertionfailed:fp,fileD:\vs2019\Console\WeChat公众号Push\WeChat公众号Push\WeChat公众号Push.cpp,line11工程文件用法举例:voidresize(intnum){if(num<0)assert(nullptr);if(num>len)//...}作者:梦凡