mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 12:32:21 +00:00
ch3-04-fix typo
This commit is contained in:
parent
781962557e
commit
3b8613f834
@ -149,7 +149,7 @@ func SomeFunc(FP *SomeFunc_args_and_returns) {
|
|||||||
|
|
||||||
在X86平台,函数的调用栈是从高地址向低地址增长的,因此伪SP寄存器对应栈帧的底部其实是对应更大的地址。当前栈的顶部对应真实存在的SP寄存器,对应当前函数栈帧的栈顶,对应更小的地址。如果整个内容是用Memory数组表示,那么`Memory[0(SP):end-0(SP)]`就是对应当前栈帧的切片,其中开始位置是真SP,结尾部分是伪SP。真SP一般用于表示调用其它函数时的参数和返回值,真SP对应内存较低的地址,所以被访问变量的偏移量是正数;而伪SP对应高地址,对应的局部变量的偏移量都是负数。
|
在X86平台,函数的调用栈是从高地址向低地址增长的,因此伪SP寄存器对应栈帧的底部其实是对应更大的地址。当前栈的顶部对应真实存在的SP寄存器,对应当前函数栈帧的栈顶,对应更小的地址。如果整个内容是用Memory数组表示,那么`Memory[0(SP):end-0(SP)]`就是对应当前栈帧的切片,其中开始位置是真SP,结尾部分是伪SP。真SP一般用于表示调用其它函数时的参数和返回值,真SP对应内存较低的地址,所以被访问变量的偏移量是正数;而伪SP对应高地址,对应的局部变量的偏移量都是负数。
|
||||||
|
|
||||||
我们现在Go语言定义一个Foo函数,并在函数内部定义几个局部变量:
|
我们现在用Go语言定义一个Foo函数,并在函数内部定义几个局部变量:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
func Foo() { var a, b, c int }
|
func Foo() { var a, b, c int }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user