永发信息网

内联函数调用的是实参还是形参?

答案:3  悬赏:20  手机版
解决时间 2021-04-06 03:09
  • 提问者网友:不爱我么
  • 2021-04-05 10:23
如果调用的是形参,那么不还是要保存现场吗?
inline int f(int a)
{
a--;
return a;
}
这个函数调用后a没有发生变化,说明是形参?
谁能给我讲一下?

那也就是说内联函数也是要用形参的。
那不就是要保存现场吗?
不是相当于把函数代码直接嵌入到主函数中吗?
最佳答案
  • 五星知识达人网友:我住北渡口
  • 2021-04-05 10:48
内联函数和宏一样,是在预编译的时候直接展开替换的。
至于你说的问题,跟是否是内联函数没有关系,你在调用的时候要给函数f传个参数,那个参数就是实参,这里的a是形参,调用f之后,实参的值要减1,形参只有在函数调用的时候在栈上分配内存,函数调用结束后消失。
而内联函数在调用的时候在预编译时候展开,也就是说不会分配额外的内存,执行效率高,但是由于预编译的时候展开,所以如果调用的多会使应用程序的大小变大。
全部回答
  • 1楼网友:爱难随人意
  • 2021-04-05 13:05
所谓的内联函数 其实就是在你写这段代码的地方替换成你现在的语句 如果调用完了 自然要释放咯 错了提醒 呵呵
  • 2楼网友:酒醒三更
  • 2021-04-05 12:20
你好!! 函数的参数有实参和形参之分:void fun(int x,int y) {、、、、}void main() {int a=6,b=5;fun(a,b);、、、、}其中fun(a,b)中的,a,b是实参,而函数fun()的定义中:void fun(int x,int y)x,y 是形参。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯