美文网首页
1.2.9go语言交互性

1.2.9go语言交互性

作者: rosekissyou | 来源:发表于2020-06-23 17:51 被阅读0次

    由于Go语言与C语言之间的天生联系,Go语言的设计者们自然不会忽略如何重用现有C模块

    的这个问题,这个功能直接被命名为Cgo。Cgo既是语言特性,同时也是一个工具的名称。

    在Go代码中,可以按Cgo的特定语法混合编写C语言代码,然后Cgo工具可以将这些混合的C

    代码提取并生成对于C功能的调用包装代码。开发者基本上可以完全忽略这个Go语言和C语言的

    边界是如何跨越的。

    与Java中的JNI不同,Cgo的用法非常简单,比如代码清单1-3就可以实现在Go中调用C语言标

    准库的puts函数。

    代码清单1-3 cprint.gopackage main/*#include*/

    import "C"

    import "unsafe"

    func main() {

    cstr := C.CString("Hello, world")

    C.puts(cstr)

    C.free(unsafe.Pointer(cstr))

    }

    相关文章

      网友评论

          本文标题:1.2.9go语言交互性

          本文链接:https://www.haomeiwen.com/subject/vughfktx.html