如果调用的是形参,那么不还是要保存现场吗?
inline int f(int a)
{
a--;
return a;
}
这个函数调用后a没有发生变化,说明是形参?
谁能给我讲一下?
那也就是说内联函数也是要用形参的。
那不就是要保存现场吗?
不是相当于把函数代码直接嵌入到主函数中吗?
内联函数调用的是实参还是形参?
答案:3 悬赏:20 手机版
解决时间 2021-04-06 03:09
- 提问者网友:不爱我么
- 2021-04-05 10:23
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-04-05 10:48
内联函数和宏一样,是在预编译的时候直接展开替换的。
至于你说的问题,跟是否是内联函数没有关系,你在调用的时候要给函数f传个参数,那个参数就是实参,这里的a是形参,调用f之后,实参的值要减1,形参只有在函数调用的时候在栈上分配内存,函数调用结束后消失。
而内联函数在调用的时候在预编译时候展开,也就是说不会分配额外的内存,执行效率高,但是由于预编译的时候展开,所以如果调用的多会使应用程序的大小变大。
至于你说的问题,跟是否是内联函数没有关系,你在调用的时候要给函数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 是形参。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯