我想在低级别上理解如何将输入赋予给函数。一个函数运行后究竟发生了什么?例如,考虑以下因素:功能的输入分配的低级描述
int foo(int t1, int t2)
{
Function defintion goes here
}
然后在后面的代码
main()
{
.
.
int a= foo(23, 24);
.
.
}
假设代码编译成功,我们得到一个二进制文件,即相当于我们的高层次源的.exe文件码。我想了解内部输入给函数的级别以及在双击这个.exe文件时究竟发生了什么。点击.exe后,什么软件/硬件进入游戏?如果有人能给我一个简短的描述,我将不胜感激。
按照要求
操作系统:Windows CPU:英特尔酷睿2
至于函数调用去,一是文字23
和
24
装载到CPU中特定的寄存器(使用
你问的太远了,太多了,无法在这里回答。如果这是在Windows上,请阅读关于PE文件和Windows加载程序和x86函数调用。如果这是Linux,请阅读有关Elf文件和Linux加载程序。 – 2013-03-12 14:23:18
@gpuguy如果你可以命名一个确切的操作系统,并且使用了哪个编译器,那么这个问题会很好。否则,这个问题可能过于广泛,任何人都无法给出有意义的答案。 – Lundin 2013-03-12 14:26:30
我同意Jonathon。你也想看看叫做“调用栈”的东西。 – Panzercrisis 2013-03-12 14:26:39