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这一行,不能留有空行,分则无法编译

posted @ 2026-07-05 11:19  shanelinlin  阅读(0)  评论(0)    收藏  举报