函数的本质

函数的参数和返回值

ARM64下,函数的参数是存放在X0到X7(W0到W7)这8个寄存器里面的.如果超过8个参数,就会入栈.
函数的返回值是放在X0 寄存器里面的.

图片.png

超过8个参数的情况
如果超过8个参数,就会入栈。

int sum(int a,int b,int c,int d,int e,int f,int g,int h,int i){
    return a + b + c + d + e + f + g + h + i;
}

sum(1,2,3,4,5,6,7,8,9);

图片.png

函数的局部变量

函数的局部变量放在栈里面!

int funcB(int a){
    int b = 1;
    return a+ b;
}
图片.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 4,725评论 1 19
  • bl和ret指令 bl标号 将下一条指令的地址放入lr(x30)寄存器 转到标号处执行指令 注意:当我们遇到bl指...
    struggle3g阅读 8,147评论 0 1
  • 突然觉得身边的一切都是假的
    布咚布咚阅读 114评论 2 0
  • 【原创】 总有一缕香,只属于一个女人。相识的美是第一感觉的前调,虽诱人却有些许会快速挥发掉的刺鼻;相知的爱是艳丽的...
    花间一斛酒阅读 383评论 0 2
  • 有时候我们觉得自己失去的太多,相反,也许是我们放弃的太多,没有好好的抓住机会,也许内心中多了一些后顾,也许觉得自己...
    何必呢何苦呢wj阅读 1,248评论 1 0