Chinaunix首页 | 论坛 | 博客
  • 博客访问: 998908
  • 博文数量: 21
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 216
  • 用 户 组: 普通用户
  • 注册时间: 2018-11-27 17:55
文章分类
文章存档

2019年(21)

我的朋友

分类: C/C++

2019-06-26 13:32:41

函数的调用,需要包含以下三个基本属性
为方便表述,这里描述的背景是函数P调用函数Q
1)传递控制。P调用Q,程序计数器必须指向Q函数的第一行指令,Q函数执行完毕返回时,要把程序计数器设置为P调用Q后面那条指令的地址;
2)传递数据,P能够把若干参数传递给Q函数,Q函数能够向P返回一个值;
3)分配和释放内存,在开始时,Q可能需要为局部变量分配空间,在返回前,又必须释放这些空间。
C语言


点击(此处)折叠或打开

  1. int son(int a, int b)
  2. {
  3.     int c = 0;

  4.     c = a + 2*b; //son函数执行一个相加操作

  5.     return c;
  6. }

  7. int main(int a)
  8. {
  9.     int i = 1, j = 0;

  10.     j = son(a,i);

  11.     return j;
  12. }
gcc -Og call.c -o call
汇编(由objdump实现:objdump -S call)



阅读(2338) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~