C语言宏定义讲解

嵌入式技术

1330人已加入

描述

近日在某一技术群又水群时某一群友将这个称之为“常量”,事实上在C语言#define正确的叫法叫做“宏定义”属于预处理指令中的一种,在C语言中应用极其广泛。

预处理指令则是指在程序编译前的操作,例如#include#define等带“#”的指令,其本身并不是C语言语句。

C语言

宏定义的用法主要有两个:定义值和定义算式

定义值:将某一值宏定义为一些符号例如下述演示中将3.1415 定义为 Pi ,这样子我们就可以使用Pi来代替3.1415进行计算

C语言

注意上述所说的替代是真正字面意义上的替代,可以理解为就是把Pi的地方给替换成了3.1415,而开头我们说过预处理指令不是C语言所谓的语句,因此不需要加上分号进行结尾。

结合这两个特性,在使用#define宏定义的时候就要尤其注意分号的存在,因为#define是替代,分号也会被替代进去,因此如果携带分号的时候如下语句就会报错,原因就是这句话等效于在算式中插入了一个分号。

C语言

什么时候我们会使用到宏定义呢?

例如代码中存在大量的重复数字,且这些数字都一起改变时,比方说一次采样的长度,我们就可以利用宏定义#define Lenth 1000

这样子我们就可以只改变替代Lenth的值来改变全部代码中Lenth的大小,节省了很多修改代码的时间。

许多同学经常因为使用中文字符而苦恼报错嘛~经常注释时进行中英文切换而头疼嘛。没错,使用#define,走报错的路,让报错无路可走!!好好好,中文编译器是吧~~ 请勿模仿

C语言

第二个用法就是定义算式如下图所示利用三目运算符 将最小值宏定义为min(a,b),宏定义中出现的变量a ,b会代入后续式子中进行运算,这种类型很像是函数但实际上并非函数。

C语言

利用这种方法可以快速的定义一些算式,例如下面的三个数最小值两个联立的三目运算符即可比较出三个数的最小值,可以较为方便的编写部分代码,节省我们所需要的空间。

C语言

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分