www问答网
所有问题
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)这个表达式对于以上两种定义的得到的结果是不一样的
而且,宏有宏的有点,函数有函数的优点
函数的优点就是占用存储空间少,缺点是每次调用函数都要调用中断程序,影响运行效率
宏的优点就是直接宏展开,每次调用都要展开,所以比较占存储空间,但是相应的就不用调用中断程序了,运行效率自然就高了
相似回答
c语言宏定义
问题 宏定义不是
可以
实现
和函数
相同功能 那为
什么
还要分函数...
答:
而如果MAX是个函数式
宏定义,
这个宏定义本身倒不必编译生成指令,但是代码中出现的每次调用编译生成的指令都相当于一个函数体,而不是简单的几条传参指令和call指令。所以
,使用函数
式宏定义编译生成的目标文件会比较大。(3)函数式宏定义要注意格式,尤其是括号。如果上面的函数式宏定义写成 #define MAX...
带参
宏定义与函数的区别
是
答:
宏与函数的区别主要在于是否返回值,一般函数都有返回值,宏是不可以的
。宏和函数都不必须要求参数,参数都是可有可无的。
急(
C语言
)比较带参的
宏与
带参的
函数
之间
的区别
答:
区别:1、宏会在编译器在对源代码进行编译的时候进行简单替换,不会进行任何逻辑检测,即简单代码复制而已。2、宏进行定义时不会考虑参数的类型。3、参数宏的使用会使具有同一作用的代码块在目标文件中存在多个副本,即会增长目标文件的大小。4、参数宏的运行速度会比函数快,因为不需要参数压栈/出栈操作...
宏和函数的区别
以及
C语言
的编译链接过程
答:
宏在编译之前,需要进行预处理,将宏直接提换成
宏定义
的代码,是直接替换,也就是说,在预处理之后,你再看代码,发现宏定义已经被替换过来了,你看到是你定义之后的那一串代码。而函数,在编译之后,有一系列调用
函数的
过程,比如,传参,压栈等,这部分是编译器所做的。
C 语言
编译链接过程:test.c...
C++中
宏和 函数 有什么不同
?
答:
宏在编译时就被替换成它内部的语句了,而函数是运行时调用的 所以如果是简单的东西就写成宏,这样没有调用
函数的
开销,效率会高一些。相反,由于宏每被调用一次,就相当于把代码复制一份,所以如果比较复杂的宏被多次调用的话,会增加代码的体积。因此,太复杂的运算就写成函数比较好了。另外,要注意在...
C语言
中带参数的
宏定义与函数的区别
(试举例)
答:
4;int m;m = ((2)>(4)?(2):4());printf("%d\n", m);return 0;} 函数就不同了
,函数
还需要分配栈空间,在执行函数时都要进行入栈和出栈操作,有的还需要分配堆空间。宏所实现的功能有限,而且长代码不易读,但是对于逻辑简单、代码不长、经常使用的功能由宏来实现是个不错的选择 ...
宏定义和
调用
函数
哪一个好一些???
答:
其实是一样的,但是要看从什么角度来看了:因为define定义的代码需要预编译,这样会带来时间的消耗,但是程序执行速度快。如果是
函数的
话,预编译时不占用时间,但是在执行时调用函数 会占用内存空间。所以看自己的选择了,但是如果执行的功能比较复杂的话,还是建议
使用函数
。另外你的define定义有问题,defin...
c语言宏定义和函数的区别
答:
不管是
宏定义
还是
函数,
都不要在修改某个变量之后,在同一个表达式中的另一个地方读取这个变量的值。否则结果就是未定义的 对于你的代码,在下面的表达式中 printf("%d^2 = %d\n", (i-1), SQ(i++))// 1 2标有 2 的地方修改了变量 i 的值,标有 1 的地方又尝试读取 i 的值。
c语言宏定义
如何用?
用宏定义有什么
优点?
答:
主要用于函数重
定义,
通用性
,可以用
一个变量符号替代另一个变量符号 格式:#define M(x,y) x+y 在主程序里写入z=M(6,9);等价于z=6+9;而写成z=(6-8,9);等价于z=6-8+9 ;直接代入 还有就是 :#define Uint unsigned int 即用 Uint 代替unsigned int 便于书写,还有就是...
大家正在搜
c语言的宏定义如何定义
c语言宏定义的几个坑和特殊用法
c语言宏定义函数
宏定义是c语言语句吗
c语言宏定义的例子
c语言宏定义用法规则
什么是宏定义
c语言宏定义格式
c语言宏定义计算