Go语言中调用C语言----类型转换篇

前端之家收集整理的这篇文章主要介绍了Go语言中调用C语言----类型转换篇前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. 基本类型转换较简单,直接用强制类型转换就可以,如下:

Go转换成C:
variint
ci:=C.int(i)

C转换成Go:
variC.int
goi:=int(i)

2. 字符串类型转换也不是很难,有一点需要注意,就是在将C语言中的char数组转换成Go的string时需要做一点小修改,如下:

Go转换成C:
varstrstring
cstr:=C.CString(str)

C转换成Go:
/*
#include<stdlib.h>
#include<stdio.h>
charfoo[]="hellofoo";
char*bar="hellobar";
*/
import"C"
import"fmt"

funcmain(){
fmt.Printf("%s\n",C.GoString(&C.foo[0]))
fmt.Printf("%s\n",C.GoString(C.bar))
}

3. 数组类型转换

以下用int和float数组为例子,如下:

/*
#include<stdio.h>
intcIArray[]={1,2,3,4,5,6,7};
floatcFArray[]={1.011,2.022,3.022,4.023,5.02,6.03,7.045};
*/
import"C"
import"fmt"

funcmain(){
goIArray:=C.cIArray[:]
fmt.Println(goIArray)
goFArray:=C.cFArray[:]
fmt.Println(goFArray)
}
原文链接:https://www.f2er.com/go/189979.html

猜你在找的Go相关文章