c语言,宏定义,与函数的差别 我觉得宏定义和函数没什么差别啊, 是否可以用宏定义代替函数

如题所述

第1个回答  2019-06-12
首先宏定义和函数是有差别的
宏定义是在编译之前处理的,不做语法检查。
这个很危险
另外我要说
#define
a(b,c)
{(b)+(c)}
表示bc之合,在结果上和函数确实一样
第2个回答  2019-09-06
#define
a(x,y)
x>y?x*y:x+y

int
a(x,y)
{
return(x+y);
}
a(x+y,x*y)这个表达式对于以上两种定义的得到的结果是不一样的
而且,宏有宏的有点,函数有函数的优点
函数的优点就是占用存储空间少,缺点是每次调用函数都要调用中断程序,影响运行效率
宏的优点就是直接宏展开,每次调用都要展开,所以比较占存储空间,但是相应的就不用调用中断程序了,运行效率自然就高了
相似回答