gpt4 book ai didi

c - 函数输入分配的低级描述

转载 作者:行者123 更新时间:2023-11-30 20:27:55 25 4
gpt4 key购买 nike

我想在低层次上了解如何将输入提供给函数。函数运行后到底会发生什么?例如,请考虑以下情况:

int foo(int t1, int t2)
{
Function defintion goes here
}

然后在代码中

main()
{
.
.
int a= foo(23, 24);
.
.
}

假设代码编译成功,我们得到一个二进制文件,即与我们的高级源代码相对应的 .exe 文件。我想了解内部函数的输入处于什​​么级别,以及当我们双击此 .exe 文件时到底会发生什么。点击.exe后,哪些软件/硬件会发挥作用?如果有人能给我一个简短的描述,我将不胜感激。

根据要求

操作系统:WindowsCPU:英特尔酷睿2双核

最佳答案

就函数调用而言,首先,文字 2324 被加载到 CPU 中的特定寄存器(用于函数参数的寄存器)。然后,您的代码将跳转到函数 foo 所在的部分。

foo 从上述寄存器中读取数据以访问 t1t2,计算返回值,并将该值存储在另一个寄存器中。然后,foo 跳回到 main 中调用它的地方。

然后,Main 从存储 foo 返回值的寄存器中读取内容,并将该值放入变量 x 中。

这是对函数调用所发生情况的高级描述。更详细的解释可能无法从堆栈溢出帖子中得到(但也许不是)。

关于c - 函数输入分配的低级描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15363797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com