C语言如何定义一个宏,可以有参数或无参数的调用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何定义一个宏,可以有参数或无参数的调用相关的知识,希望对你有一定的参考价值。
参考技术A #include <stdio.h>#define PRINTF_120 printf("120\\n"); //无参数宏定义
#define PRINTF_INT(a) printf("%d\\n", a); //有参数宏定义
int main (int argc, char *argv[])
PRINTF_120
PRINTF_INT(110)
return 0;
c语言宏定义有无参数的区别
你是指带参的和不带参数的?不管带不带参数,一定要记住一点,“原样替换”是宏定义的本质。
在处理之前做了文本替换的工作。
如果说区别的话, 带参数的需要将对应的文本导入到宏定义的定义中去然后再替换,比不带参数多了一步
#define M(y) y*y+3*y /*宏定义*/
k=M(5); /*宏调用*/
那么在编译之前就会变成
k= 5*5 + 3*5
#define M(y) y*y+3*y /*宏定义*/
k=M(3+x); /*宏调用*/
那么在编译之前就会变成
k=3+x*3+x+3*3+x (注意这里原样替换,不能加括号的) 参考技术A 有参数的话 就先于给了常量 不能修改,而没有参数 可以在程序里重新赋值。例如#define N 18 N一直都是18 你在程序里改 N=10;并不能改变值。 参考技术B 嗯
以上是关于C语言如何定义一个宏,可以有参数或无参数的调用的主要内容,如果未能解决你的问题,请参考以下文章