• CGO快速入门


    1. 通过`improt "C"`语句开启CGO特性
    2. `/**/`中间是C代码,之后接 import "C" 如果存在空行 就会报错.could not determine kind of name for C.*
    3. CGO不仅仅用于Go语言中调用C语言函数,还可以用于导出Go语言函数给C语言函数调用

    示例一,开启CGO特性:
    package main
    
    //#include <stdio.h>
    import "C"
    
    func main() {
    	// println("hello cgo")
    	C.puts(C.CString("Hello, World
    "))
    }
    

      示例二,调用自定义的C方法:

    package main
    
    /*
    #include <stdio.h>
    
    static void SayHello(const char* s) {
        puts(s);
    }
    */
    import "C"
    
    func main() {
    	C.SayHello(C.CString("Hello, World
    "))
    }
    

      C代码与go代码放在同一个文件中,C代码注释起来,紧接着换行写 import "C"

      示例三,C代码与Go代码分离:

    package main

    // void SayHello(const char* s); import "C" func main() { C.SayHello(C.CString("Hello, World ")) }

      同目录下需要放置一个hello.c文件,内容如下:

    #include <stdio.h>
    
    void SayHello(const char* s) {
        puts(s);
    }
    

      

  • 相关阅读:
    Apollo 配置中心
    Sentinel 限流
    soul 网关
    xxl-job 任务管理
    java Young GC排查
    bitmap(位图)
    RabbitMQ一个简单可靠的方案(.Net Core实现)
    从技术角度讨论微服务
    你可能不知道的.Net Core Configuration
    浅谈开发模式及架构发展
  • 原文地址:https://www.cnblogs.com/w3liu/p/14407766.html
Copyright © 2020-2023  润新知