【C语言assert关键字】

您所在的位置:网站首页 imagine的用法搭配 【C语言assert关键字】

【C语言assert关键字】

#【C语言assert关键字】| 来源: 网络整理| 查看: 265

C语言assert关键字 C语言之assert1、什么是assert?2、assert的用法2.1、assert例程1 3、assert的搭配3.1、assert例程2 4、结束语

C语言之assert

前言: 在编写程序过程中,尤其是调试代码时,往往需要一个提醒代码漏洞/Bug的小助手,以便于程序员及时修改和完善代码。那么assert关键字就可以成为这个小助手。

1、什么是assert?

概念: assert 是一种断言,它是C语言、C++和Java等编程语言常用的关键字。

作用: 在编写程序时,为了保证程序的正确性、可靠性和安全性,常用于在程序执行过程中进行判断某个条件是否成立,如果条件不成立,程序会立即停止执行。

2、assert的用法

语法: assert(condition); condition:要判断的条件 说明: a、如果condition判断结果为false,则程序就会停止执行。 b、当程序停止执行时,assert就会断言失败,并输出一条程序的错误信息到控制台或日志文件中。 c、assert关键字常常用于调试程序阶段,可以用来帮助程序员在程序出现异常或错误时,快速定位问题所在,以便于检查和就修改完善。 d、而在程序正常部署后,assert一般就会被自动关闭。

2.1、assert例程1 /*例程1*/ #include #include #include //size_t --- unsigned int size_t My_strlen(const char* str)//参数传数组首地址 { assert("str != NULL");//注意:这里我把断言取消了,要用时把双引号去掉即可 //断言,判断是否传的空地址,及时报错纠正 int count = 0;//计数 //是假就不执行while循环 //是真则执行,函数体 //不断判断后加加(后置++,先用后加),数组元素是否为字符串结束标志位'\0' while (*str != '\0') { str++; count++; } return count; } int main() { char arr[] = "hello bit!!!"; int len = My_strlen(arr); printf("%d\n", len);//12 return 0; }

如图所示: 在这里插入图片描述

小结: a、断言需要引用头文件, b、断言,作用是指出代码报错的位置/方便查找原因

3、assert的搭配

assert关键字一般和其他编程特性搭配使用,以下是几个常见的 搭配:

a、与if语句搭配使用: assert和if一起使用可以让我们更好地控制程序执行流程。 通过if语句来判断程序的状态,再使用assert来断言某些关键条件是 否仍然成立。

b、与try-catch语句搭配使用 在C++和Java等面向对象的语言中 assert通常和异常处理语句try-catch一起使用。 当程序抛出异常时,assert可以将程序停止 执行并输出错误信息,以便程序员快速发现问题并进行修复。

c、与Log输出搭配使用 除了在控制台输出错误信息,assert还可以将错误信息输出到日 志文件中,以便程序员更加方便地进行分析调试。

3.1、assert例程2 /*例程2*/ #include #include //断言需要引用头文件, //const ---- 方便检查strcpy参数是否写反了 //标准strcpy函数 char* my_strcpy(char* dest, const char* src) { assert(src != NULL);//判断传过来的参数是否为空指针 assert(dest != NULL); char* ret = dest; while (*dest++ = *src++)//这里判断的结果是逻辑真假,所以既实现了拷贝了\0,也同时实现循环条件的跳出 { ;//hello的拷贝 } return ret;//返回目标空间的起始地址 } int main() { char arr1[20] = "xxxxxxxxx"; char arr2[] = "hello"; my_strcpy(arr1, arr2); printf("%s\n", my_strcpy(arr1, arr2));//链式访问 return 0; }

如图所示:

在这里插入图片描述

4、结束语

总体来说; assert是一个非常有用的关键字,能够帮助程序员在编写程序时更快地发现问题并进行修复, 从而提高程序的安全性和可靠性。 因此,编写程序时应该充分发挥assert的作用,并合理地搭配其他语句和特性使用,以便更好地保证程序的正确性、可靠性以及严谨性。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3