我有以下简单的测试代码:call_c.go
package main
/*
int getData(int *p, int n )
{
int i;
for(i=0;i<n;i++) {
p[i]=i;
}
return n;
}
*/
import "C"
import "fmt"
func main() {
var a [5]int32
i := C.getData((*C.int)(&a[0]), 5)
fmt.Println(i, a)
}
我使用“ go build call_c.go ”来构建程序并且构建良好。
但是我发现如果我简单地将“import fmt”、“import C”的顺序颠倒或者在C /* */块代码和第一个import语句之间添加一个换行符,“go build call_c.go”命令就会返回一个错误:
go build call_c.go
37: error: 'getData' undeclared (first use in this function)
专家地鼠的问题:
为什么导入顺序在 go 中很重要?
为什么我不能在 C 块和第一个导入语句之间添加空格?
如果我再次看到这种错误,如何最好地调试它?
元芳怎么了
相关分类