在同一文件用 Go 调用 C 代码

从 Go 程序调用 C 代码的最简单方法是将 C 代码包含在 Go 源文件中。这需要特殊处理,但是速度很快,而且没有那么困难。

包含 C 和 Go 代码的 Go 源文件的名称为cGo.go,将分为三部分。

第一部分的代码:

package main
//#include <stdio.h>
//void callC() {
//    printf("Calling C code!\n");
//}
import "C"

Tip: 如你所看到的,C 代码包含在 Go 程序的注释中。但是,由于使用了c Go package,go知道如何处理此类注释。

第二部分代码:

import "fmt"

func main() {

所有其他的包都必须被单独导入。

最后一部分代码:

  fmt.Println("A Go statement")
  C.callC()
  fmt.Println("Another Go Statement!")
}

为了执行callC() c 函数,你需要像这样C.callC()调用.

执行cGo.go你会得到这样的输出:

  $ go run cGo.go
  A Go statement!
  Calling C code!
  Another Go statement!

Last updated