Go语言 函数调用协议

2018-07-25 17:23 更新

理解Go的函数调用协议对于研究其内部实现非常重要。这里将会介绍Go进行函数调用时的内存布局,参数传递和返回值的约定。正如C和汇编都是同一套约定所以能相互调用一样,Go和C以及汇编也是要满足某些约定才能够相互调用。

本章先从Go调用C和汇编的例子开始(非cgo方式),通过分析其实现学习Go的函数调用协议。然后将会研究go和defer关键字等神奇的魔法。接着会研究连续栈的实现,最后看一下闭包。

这一章的内容将是后面研究cgo,goroutine实现的基础。连续栈技术是Go能够开千千万万条“线程”而不耗尽内存的基本保证,也为cgo带来了很大的限制,这些将会在后面章节中再讨论。

好,让我们进入正题吧!

links


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号