c++函数的调用到底怎么去理解 10

 我来答
ualwayswithme
2012-06-19 · 超过34用户采纳过TA的回答
知道答主
回答量:48
采纳率:0%
帮助的人:75.5万
展开全部
不知道你所需要的答案有多深。
如果只是需要很粗浅的理解,那么上楼说的就已经够了。就是在函数被调用处的函数代码的一次展开、执行。
如果深一点的话,那上一种说法就是错误的,没有那么简单。有声明函数的时候也许你会看到inline这个关键词,如果有这个关键词,C++编译器在编译的时候就会将函数在被调用处展开,与上种说法一致。如果没有这个关键词,就不是这样的了。
这里如果你有点汇编基础的话,会对下的话有更好的理解。
C/C++默认的是_cdec的调用方式,当然C++在牵涉到类时会用thiscall方式。这里只说_cdec.当执行到调用函数这一行时,就将函数的参数从右至左一个一个装入栈中,然后跳到函数本身地址处执行,接着恢复栈。最后跳回函数被调用处的下一行代码继续执行。
看起来有些复杂,不过随着你学习的深入你会明白。
其实,你只要知道函数的调用是一次代码展开或者一次跳转就行了。
学C学的崩溃
2012-06-19
知道答主
回答量:22
采纳率:0%
帮助的人:18.5万
展开全部
#include<iostream>
using namespace std;

int sum(int x,int y)//定义一个函数,命名为sum
{
int a;
a=x+y;
return a;//函数必须返回一个值。就如x=a+b一样,计算了a+b之后,就把x的值返回计算机拿来用
}

int main()//主函数
{
int x=11,y=21;
cout<<sum(x,y);//这里,调用了上面的sum函数
x=sum(x,y)+y;//你可以把sum看成是一个值,就像你学数学的x=a+b的x一样
return 0;//当然,主函数也要返回一个值,凡是函数都要返回一个值,你就如你学数学一样,x=a+b是函数,a+b不是!因为a+b没有返回一个值!
}
够详细了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
icepointfirst
2012-06-19 · TA获得超过303个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:225万
展开全部
可以理解为:被调用函数在被调用的地方展开代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jing_1753
2012-06-20 · TA获得超过264个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:222万
展开全部
C++的函数调用和C的是一样的,调用调用顾名思义就是拿来用而已,函数就是你定义了一个模型,好比做砖需要一个模子,把材料装进模子里,经过加工就是一个砖了,材料不同做出来的砖也不同,也就是模型是一定的,套用不同的参数,结果也不同,这是我对函数的理解,当然比较适合初学者
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式