使用带参数的宏定义说明
发表:2023-08-29 12:00:42 阅读:60

电子资讯使用带参数的宏定义说明

对于带参数的宏定义有以下问题需要说明:

①带参数的宏定义中,宏名和形参表之间不能有空格出现。例如,把

#define F(y)y*y

写为:

#define F(y)y*y

将被认为是无参数的宏定义,宏名F代表字符串(y)y*y。

②在宏定义中,字符串内的形参最好用括号括起来以避免出错。在上例的宏定义中(y)*(y)表达式的y是用括号括起来。

③带参数的宏与函数的区别:函数调用时,先求出表达式的值,然后代入形参。而使用带参数的宏只是进行简单的字符替换,在宏展开时并不求解表达式的值。函数调用时在程序运行时处理的,而宏展开则是在编译时进行,宏定义没有“返回值”的概念。使用宏定义时,宏展开后源程序将变长,而函数调用不会使源程序变化。调用函数只可得到一个返回值,而用宏却可以设法得到几个结果。

 

电子街推荐阅读

 

带参数的宏定义

宏定义使用说明

C语言宏定义

编译预处理概述