go内嵌调用C代码

 

go是支持调用C代码的,但是调用有较多限制。
这是一个go调用文件内部的C语言代码的示例。

注意的点:

  • C代码需要加注释,否则无法识别;
  • import "C" 需要单独的一行,不能和其他的放在一起引入,否则会提示找不到;
  • import "C" 需要紧跟着在C代码结束的下一行,否则会报未定义的错误;
  • 编译前可能提示找不到被调用的函数,但是编译之后就正常了,因为编译前是看做注释的;
  • 还有较多的限制,具体看官方文档。

package main

/*
#include "stdio.h"
int add(int a,int b){
    return a+b;;
}
void c_printf(char * buff){
    printf("c print: %s\n", buff);
}
*/
import "C" //注意这里不能有空行,import C 需要紧跟着在C代码下一行

import (
    "fmt"
)

func main() {
    C.puts(C.CString("Hello World"))

    fmt.Println(C.add(1, 1))

    C.c_printf(C.CString("hello world!"))

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值