Go语言访问C语言数据类型
Go语言访问C语言的数据类型,只需要将C语言的代码用注释包围起来,之后紧跟一个import “C”。
之后就可以通过C.{标识符}来获取C语言中的数据类型。可以通过类型转换将其转换到Go语言中的数据类型中。
新创建一个文件夹,里面声明属于包main的文件test2.go
package main
/*
#include <stdio.h>
char ch = 'c';
int num = 10101;
double value = 3.1415;
*/
import "C"
import "fmt"
func main() {
// 通过C.变量名称 方式访问C语言中的变量
fmt.Println(C.ch)
fmt.Println(C.num)
fmt.Println(C.value)
fmt.Printf("%T\n", C.ch)
fmt.Printf("%T\n", C.num)
fmt.Printf("%T\n", C.value)
var ch byte
ch = byte(C.ch)
fmt.Println(ch)
var num int
num = int(C.num)
fmt.Println(num)
var value float64
value = float64(C.value)
fmt.Println(value)
}
运行结果如下:
可见,用%T可以输出变量对应C语言中的实际数据类型是什么。直接用println输出或者类型转换为Go中的类型再用println输出,都可以正常输出并显示。