Go语言中调用C语言----类型转换篇
发布时间:2020-12-16 18:34:56 所属栏目:大数据 来源:网络整理
导读:1. 基本类型转换较简单,直接用强制类型转换就可以,如下: Go转换成C:variintci:=C.int(i)C转换成Go:variC.intgoi:=int(i) 2. 字符串类型转换也不是很难,有一点需要注意,就是在将C语言中的char数组转换成Go的string时需要做一点小修改,如下: Go转换成
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("%sn",C.GoString(&C.foo[0])) fmt.Printf("%sn",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) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |