1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-28 07:22:20 +00:00

ch3-06: 开个头

This commit is contained in:
chai2010 2018-06-07 08:14:16 +08:00
parent 3034c445aa
commit b37927bd84
2 changed files with 4 additions and 2 deletions

View File

@ -28,7 +28,7 @@
* [3.3. 常量和全局变量](ch3-asm/ch3-03-const-and-var.md)
* [3.4. 函数](ch3-asm/ch3-04-func.md)
* [3.5. 控制流](ch3-asm/ch3-05-control-flow.md)
* [3.6. 再论函数(TODO)](ch3-asm/ch3-06-func-again.md)
* [3.6. 再论函数(Doing)](ch3-asm/ch3-06-func-again.md)
* [3.7. FUNCDATA和PCDATA(TODO)](ch3-asm/ch3-07-funcdata-pcdata.md)
* [3.8. C预处理器(TODO)](ch3-asm/ch3-08-c-preprocessors.md)
* [3.9. Go核心对象结构(TODO)](ch3-asm/ch3-09-core-type.md)

View File

@ -1,3 +1,5 @@
# 3.6. 再论函数(TODO)
# 3.6. 再论函数(Doing)
在前面的章节中我们已经简单讨论过Go的汇编函数但是那些主要是叶子函数。叶子函数的最大特点是不会调用其他函数也就是栈的大小是可以预期的叶子函数也就是可以基本忽略爆栈的问题如果已经爆了那也是上级函数的问题。如果没有爆栈问题那么也就是不会有栈的分裂问题如果没有栈的分裂也就不需要移动栈上的指针也就不会有栈上指针管理的问题。但是是现实中Go语言的函数是可以任意深度调用的永远不用担心爆栈的风险。那么这些近似黑科技的特殊是如何通过低级的汇编语言实现的呢这些都是本节尝试讨论的问题。
TODO