Gcc 静态和局部变量的寻址模式

Gcc 静态和局部变量的寻址模式,gcc,static,programming-languages,addressing,Gcc,Static,Programming Languages,Addressing,为什么直接处理静态变量而间接处理局部变量?我看不出当地人的间接行为是从哪里来的 在允许递归使用函数的语言中,局部变量需要间接寻址(通过堆栈指针) C、 但是,也有静态局部变量,因此static和local不一定是相互排斥的概念。您没有提供足够的上下文来很好地回答这个问题。什么编程语言;你说的是什么编译器等?@Ingro我明白了,所以我们首先计算局部变量的地址,然后从计算出的内存地址读取数据。对吗?当然,这取决于实现,但通常的做法是让寄存器(堆栈指针)指向堆栈的顶部/底部,然后每个局部变量都有一个

为什么直接处理静态变量而间接处理局部变量?我看不出当地人的间接行为是从哪里来的

在允许递归使用函数的语言中,局部变量需要间接寻址(通过堆栈指针)


C、 但是,也有静态局部变量,因此
static
local
不一定是相互排斥的概念。

您没有提供足够的上下文来很好地回答这个问题。什么编程语言;你说的是什么编译器等?@Ingro我明白了,所以我们首先计算局部变量的地址,然后从计算出的内存地址读取数据。对吗?当然,这取决于实现,但通常的做法是让寄存器(堆栈指针)指向堆栈的顶部/底部,然后每个局部变量都有一个已知的堆栈指针偏移量。