龙空技术网

单片机C语言-预处理命令(一)带参宏定义

老马识途单片机 1536

前言:

现在朋友们对“c语言参数宏”大致比较关注,兄弟们都想要了解一些“c语言参数宏”的相关内容。那么小编也在网摘上搜集了一些有关“c语言参数宏””的相关内容,希望小伙伴们能喜欢,看官们快快来了解一下吧!

C语言允许宏带有参数。在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数。

在调用带参数的宏时,不仅要将宏展开,而且要用实参去代替形参。

带参宏定义的一般形式如下:

#define 宏名(形参表) 字符串

字符串中可以含有多个形参。

带参宏调用的一般形式如下:

宏名(实参表);

例如:

宏定义

#define MACRO(x) x*5+x*x

宏调用

p=MACRO(2);

带参宏定义实例

源程序

仿真电路图

运行效果图

说明

1、带参宏定义中,宏名和形参之间不能有空格。

2、带参宏定义中,形参不分配内存单元,因此不必做类型定义,而宏调用中的实参有具体的值,要用它们去代换形参,因此必须做类型说明。

3、带参宏定义中传递的形参是标识符,而宏调用中的实参可以是表达式。

例如

源程序

仿真电路图

运行效果图

4、在宏定义中,字符串内的形参通常要用括号括起来以避免出错。

例如下面的例子

源程序

仿真电路图

运行效果图

5、即使在参数两边加括号还是不够的,应在宏定义中的整个字符串外加括号。

标签: #c语言参数宏