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);
    }
    

      

  • 相关阅读:
    容器小结
    STL之Map和multimap容器
    STL之Set和multiset容器
    STL之优先级队列priority_queue
    STL之List容器
    STL之Queue容器
    STL之stack容器
    应用安全-提权/降权相关整理
    安卓监听工具整理
    Linux命令整理-Kali
  • 原文地址:https://www.cnblogs.com/w3liu/p/14407766.html
Copyright © 2011-2022 走看看