我是靠谱客的博主 温柔黑米,最近开发中收集的这篇文章主要介绍Go语言学习之cgo(golang与C语言相互调用),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

生命不止,继续 go go go !!!

几乎所有的编程语言都有C语言的影子,当然golang也不例外。可以看到golang的创始者们与c language有着密切的联系。所有,golang和c语言的相互调用也是理所应当。

什么场合会使用Go与C的互操作呢?
下面的地址给出这样的答案:http://tonybai.com/2012/09/26/interoperability-between-go-and-c/
1、提升局部代码性能时,用C替换一些Go代码。C之于Go,好比汇编之于C。
2、嫌Go内存GC性能不足,自己手动管理应用内存。
3、实现一些库的Go Wrapper。比如Oracle提供的C版本OCI,但Oracle并未提供Go版本的以及连接DB的协议细节,因此只能通过包装C OCI版本的方式以提供Go开发者使用。
4、Go导出函数供C开发者使用(目前这种需求应该很少见)。

Cgo

Cgo enables the creation of Go packages that call C code.

Cgo lets Go packages call C code. Given a Go source file written with some special features, cgo outputs Go and C files that can be combined into a single Go package.

这个不要误解,cgo不是一个package,我们只需要import “C”就好了。

Package unsafe

顺便介绍一下u

最后

以上就是温柔黑米为你收集整理的Go语言学习之cgo(golang与C语言相互调用)的全部内容,希望文章能够帮你解决Go语言学习之cgo(golang与C语言相互调用)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部