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

      

  • 相关阅读:
    跨域问题注解解决
    跳出循环到指定位置
    idea model管理
    maven 取本地jar
    注解 元注解
    手动打jar包到maven
    sonar搭建
    jmockit、junit
    注解
    虚拟机指令
  • 原文地址:https://www.cnblogs.com/w3liu/p/14407766.html
Copyright © 2011-2022 走看看