有参宏定义

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有参宏定义相关的知识,希望对你有一定的参考价值。

定义宏的时候,可以携带参数,如同定义函数一样,有形参列表。定义格式如下:

#define 宏名(形参列表表达式

       注意:这里的形参列表,与函数的形参列表有区别。函数的形参列表有变量的数据类型名,这里定义宏的形参列表,不需要数据类型名。使用带参数宏时,如果需要传递参数,调用方法如同调用函数一样。程序测试例子如下:

       程序运行结果如下:

       可以看到,编译程序预处理的时候,碰到 print(10, 11);宏,就对宏进行替换展开,替换为:

printf("x = %d, y = %d\\n", x, y);

       但是,x, y 符号是宏的参数,所以,需要进行替换。根据宏定义的参数顺序是 print(x, y);所以,在调用print(10, 11)宏的时候,按顺序替换,使用10替换x,11替换y。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

以上是关于有参宏定义的主要内容,如果未能解决你的问题,请参考以下文章

帮忙看下这个带参的宏定义,看不懂?

预处理-01-无参宏定义

无参宏定义

宏定义与内联函数

第八章 编译预处理

C宏定义中的连接符"##"和字符串化操作符"# "及变参宏"..."