首页 > 其他 > 详细

CGO快速入门

时间:2021-02-16 23:19:57      阅读:28      评论:0      收藏:0      [点我收藏+]
1. 通过`improt "C"`语句开启CGO特性
2. `/**/`中间是C代码,之后接 import "C" 如果存在空行 就会报错.could not determine kind of name for C.*
3. CGO不仅仅用于Go语言中调用C语言函数,还可以用于导出Go语言函数给C语言函数调用

示例一,开启CGO特性:
package main

//#include <stdio.h>
import "C"

func main() {
	// println("hello cgo")
	C.puts(C.CString("Hello, World\n"))
}

  示例二,调用自定义的C方法:

package main

/*
#include <stdio.h>

static void SayHello(const char* s) {
    puts(s);
}
*/
import "C"

func main() {
	C.SayHello(C.CString("Hello, World\n"))
}

  C代码与go代码放在同一个文件中,C代码注释起来,紧接着换行写 import "C"

  示例三,C代码与Go代码分离:

package main

// void SayHello(const char* s); import "C" func main() { C.SayHello(C.CString("Hello, World\n")) }

  同目录下需要放置一个hello.c文件,内容如下:

#include <stdio.h>

void SayHello(const char* s) {
    puts(s);
}

  

CGO快速入门

原文:https://www.cnblogs.com/w3liu/p/14407766.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!