Golang cgo编程 [] string 转 C语言 char**

简介:


1
2
3
4
5
6
7
8
9
10
11
12
func Test(args[] string){
    arg := make([](*_Ctype_char), 0)   //C语言char*指针创建切片
    l := len(args)
    for  i,_ := range args{
        char  := C.CString(args[i])
        defer C. free (unsafe.Pointer( char ))  //释放内存
        strptr := (*_Ctype_char)(unsafe.Pointer( char ))
        arg = append(arg, strptr)   //将char*指针加入到arg切片
    }
                                                                                  
    C.test(C. int (l), (**_Ctype_char)(unsafe.Pointer(&arg[0])))   //即c语言的main(int argc,char**argv)
}

上段代码为go语言传进os.args的参数行命令(string切片),通过cgo来调用,传给C语言层

的main(int argc,char**argv) 这里,已重命名C代码的main()函数为test(),主进程由go来启动


golang运用cgo调用C代码,golang的 [ ]string 转C语言的 char**,步骤为上述代码的2-9行。










本文转自 ponpon_ 51CTO博客,原文链接:http://blog.51cto.com/liuxp0827/1344922,如需转载请自行联系原作者
目录
相关文章
|
15天前
|
网络协议 程序员 编译器
C语言:编程世界的基础与魅力
C语言:编程世界的基础与魅力
|
2月前
|
监控 网络协议 API
C语言系统编程
C语言系统编程
|
15天前
|
编译器 C语言 C++
C语言,C++编程软件比较(推荐的编程软件)
C语言,C++编程软件比较(推荐的编程软件)
|
3天前
|
C语言
基础C语言编程题
基础C语言编程题
4 0
|
7天前
|
编解码 算法 数据可视化
【C 言专栏】运用 C 语言进行图形编程
【5月更文挑战第3天】本文探讨了C语言在图形编程中的应用,介绍了基础概念和常用图形库如OpenGL和SDL。通过初始化环境、绘制图形、处理用户输入及更新显示等步骤,阐述了图形编程过程。同时,文章提到了性能优化、兼容性处理和复杂图形绘制的挑战,以及通过实际游戏案例分析应用。随着技术发展,C语言图形编程在跨平台和移动设备上的前景广阔,鼓励读者深入学习和创新。
【C 言专栏】运用 C 语言进行图形编程
|
18天前
|
C语言
C 语言解 常见编程题(下)
C 语言解 常见编程题
44 0
|
18天前
|
C语言
C 语言解 常见编程题(上)
C 语言解 常见编程题
45 0
|
1月前
|
存储 Java C语言
从C语言的面向过程编程过渡理解面向对象编程风格
从C语言的面向过程编程过渡理解面向对象编程风格
10 0
|
1月前
|
Linux 测试技术 C语言
【Linux】应用编程之C语言文件操作
【Linux】应用编程之C语言文件操作
|
2月前
|
程序员 编译器 C语言
编程最重要的技术之一 — 调试(以C语言代码为例)
编程最重要的技术之一 — 调试(以C语言代码为例)
42 0