cgo之简介

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cgo之简介相关的知识,希望对你有一定的参考价值。

cgo可以认为是在go语言中调用c程序,或者在c程序中调用go程序。我们先看一个最简单例子

package main

import "C"

func main()
println("hello")

比普通的go程序多了一行import "C",但是我们发现虽然启动了cgo特性,但是实际上我们并没有使用它,并且还不会报错。但是编译的时候需要用到gcc编译器。

那如何在go文件中执行c的方法呢?

package main

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

func main()
C.puts(C.CString("Hello, World\\n"))

首先import "C"是必须要有的,在这句话上面,放的就是c语言方面的内容,例如include就是需要引用的类库,这是固定格式,在import "C"上面加上//,后面就是包含语句。当然如果有多条语句的话可以使用/**/这样的注释。

下面调用c中的puts方法数据字符串。

int puts( char *str );

这是c语言puts的函数说明,C.CString就是把go语言中字符串表示形式转换成c语言字符串表示形式。

以上是关于cgo之简介的主要内容,如果未能解决你的问题,请参考以下文章

cgo快速入门之golang调用C语言

cgo之类型转换

FFI实战之对接GO(CGO)

cgo之调用静态库

FFI实战之对接GO(CGO)Delphi类型转Go

Go初接触之缩略图