zoukankan      html  css  js  c++  java
  • 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);
    }
    

      

  • 相关阅读:
    0603学术诚信和职业道德
    0602第二个冲刺
    0525《构建之法》8、9、10章读后感
    0525Sprint回顾
    实验三进程调度
    解决提问的问题
    阅读《构建之法》第13-17章
    阅读:第10、11、12章
    作业5.2(封装及测试)
    作业5.1
  • 原文地址:https://www.cnblogs.com/w3liu/p/14407766.html
Copyright © 2011-2022 走看看