写出诗一样代码的灵丹妙药: const与assert

简介: 写出诗一样代码的灵丹妙药: const与assert

前言

在写代码的过程中,想必大家应该会时不时遇到一些自己写出来的bug,它跟幽灵一样时不时吓你一跳,让你触不及防,写的程序也会突然崩溃。在这种时候就得拿出我们的灵丹妙药const和assert来制裁它们了。

什么是const和assert

const是C语言关键字中的一种,const是constant的简写,用来定义常量,它限定一个变量不允许被改变,产生静态作用。const最开始推出的目的是为了取代预编译指令,取长补短。除此之外,const 更强大的地方是修饰函数参数、函数返回值、函数体。被 const 修饰的东西都受到强制保护,可以防止意外改动,提高程序的健壮性。

assert用百度百科的介绍,"在程序设计中,断言是一种放在程序中的一阶逻辑,目的是为了标示与验证程序开发者预期的结果-当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并给出错误消息。"C语言的断言是通过assert语句来实现的,用于捕获运行时不应该发生的非法情况。如果在执行断言时,对应的断言为真,啥事都没有发生,如果对应的断言为假,编译器就会出现异常。

const与assert的作用

对于函数的入参,不管是什么数据类型,也不管是 指针传递,还是 引用传递,只要加了 const 修饰,就可以防止函数内意外修改该参数,起到保护作用。

const在修饰指针变量的时候,const如果放在*的左边,修饰的是指针指向的内容。保证指针指向的内容不能通过指针改变。但是指针自身的内容可以改变。

const如果在*的右边,修饰的是指针自身的内容。保证指针自身的内容不能通过指针改变。但是指针指向的内容可以改变。

代码举例:

断言的作用就是编码人员在开发期间应该对函数的参数、代码中间执行结果合理地使用断言机制,确保程序的缺陷尽量在测试阶段被发现。

代码案例:

目录
相关文章
|
2月前
assert()函数用法总结
assert()函数用法总结
|
3月前
C标准库 - <assert.h>
C标准库 - <assert.h>。
14 1
|
5月前
qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码
qt初入门0:结构体中QString用memset导致崩溃分析及QLatin1String简单查看源码
67 0
|
7月前
|
安全 编译器 C语言
const函数和assert函数:提高代码质量的利器
const函数和assert函数:提高代码质量的利器
22 0
|
7月前
【C++11保姆级教程】新的函数声明(trailing return type)、右值引用(rvalue references)
【C++11保姆级教程】新的函数声明(trailing return type)、右值引用(rvalue references)
|
10月前
|
程序员 C语言
assert断言与const修饰指针的妙用(模拟实现strcpy函数)
assert断言与const修饰指针的妙用(模拟实现strcpy函数)
|
11月前
|
C++
【C/C++知识点】const与指针
【C/C++知识点】const与指针
51 0
|
程序员 C语言
const用法,区别const int*和int* const(顺便用图片教你看懂所有C语言变量类型声明)
const用法,区别const int*和int* const(顺便用图片教你看懂所有C语言变量类型声明)
const用法,区别const int*和int* const(顺便用图片教你看懂所有C语言变量类型声明)