從 Go 呼叫 C 函式

Cgo 支援建立呼叫 C 程式碼的 Go 包。
要使用 cgo 寫入匯入偽包 C 的普通 Go 程式碼。然後,Go 程式碼可以引用諸如 C.int 之類的型別,或者諸如 C.Add 之類的函式。
匯入 C 之前會有一個註釋,該註釋稱為前導碼,在編譯包的 C 部分時用作標題。
請注意,cgo 註釋和 import 語句之間不能有空行。
請注意,import "C" 不能與其他匯入組合成帶括號的因式匯入語句。你必須編寫多個 import 語句,例如:

import "C"
import "fmt"

對於其他匯入,使用 factored import 語句是一種很好的方式,例如:

import "C"
import (
    "fmt"
    "math"
)

使用 cgo 的簡單示例:

package main

//int Add(int a, int b){
//    return a+b;
//}
import "C"
import "fmt"

func main() {
    a := C.int(10)
    b := C.int(20)
    c := C.Add(a, b)
    fmt.Println(c) // 30
}

然後 go build,執行它,輸出:

30

要建立 cgo 包,只需像往常一樣使用 go buildgo installgo tool 識別特殊的 C 匯入,並自動將 cgo 用於這些檔案。