gpt4 book ai didi

c - 参数变量存储在内存中的什么位置?

转载 作者:行者123 更新时间:2023-12-04 19:09:38 25 4
gpt4 key购买 nike

我正在用 C 编写一些代码,当遇到一个方法时,我想知道参数变量在内存中的存储位置。
我知道以下几点:

全局变量 -> 存储在静态代码段

静态变量 ->

局部自动变量(方法内部)-> 存储在堆栈中

局部静态变量 -> 存储在堆栈中

局部常量变量 -> 存储在堆栈中

假设我的假设是正确的。

但是参数变量存储在哪里?例如:int *(int x, char *c);

谢谢!

编辑:
我知道当我 malloc 某些东西时,它被放置在堆上,但是说我取消引用指针以获取指针位置的值,它是否也存储在堆中还是现在在堆栈中?

最佳答案

这取决于许多不同的事情,calling convention是要研究的主要内容。此 x86 页面进入各种调用约定以及如何将参数传递给函数和 this reference介绍各种 C++ 编译器和平台使用的调用约定。通常,它要么位于直通寄存器的堆栈上。

我对 C++ (nested) function call instructions - registers 的回答也是相关的,并有一些更有用的链接。

关于c - 参数变量存储在内存中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304705/

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