golang代码中嵌入c语言代码,c代码片段和golang的代码之间不能有空行
package main
/*
include <stdio.h>
void hello() {
printf("Hello from C!\n");
}
int add(int a, int b) {
return a + b;
}
*/
import "C"
import "fmt"
func main() {
// 1. 调用无返回值的 C 函数
C.hello()
// 2. 调用带参数和返回值的 C 函数
// 注意:Go 的 int 类型必须显式转换为 C 的 int 类型 (C.int)
a := 10
b := 20
res := C.add(C.int(a), C.int(b))
// C 的返回值也需要转换回 Go 的类型
fmt.Printf("Result from C: %d\n", int(res))
}
上面时go源码中直接嵌入c代码的例子,需要注意的是:
c代码片段的最后一行 */ 和go 代码的import这一行,不能留有空行,分则无法编译
浙公网安备 33010602011771号