当前位置: 首页 > news >正文

自主式响应网站长沙营销网站建设

自主式响应网站,长沙营销网站建设,襄樊公司网站建设,jsp动态网站开发课程Go语言是类C的语言,与C语言有着千丝万缕的联系,在Go语言的代码中可以直接调用C语言代码,但不支持直接调用 C。 Go 调用 C/C 的方式: C:直接调用 C API;C:通过实现一层封装的 C 接口来调用 C 接…

Go语言是类C的语言,与C语言有着千丝万缕的联系,在Go语言的代码中可以直接调用C语言代码,但不支持直接调用 C++。

Go 调用 C/C++ 的方式:

  • C:直接调用 C API;
  • C++:通过实现一层封装的 C 接口来调用 C++ 接口。

调用C语言

在Go语言的源代码中直接声明C语言代码是比较简单的应用情况,可以直接使用这种方法将C语言代码直接写在Go语言代码的注释中,并在注释之后紧跟 import "C",通过 C.xx 来引用C语言的结构和函数,如下所示:

package main/*
#include <stdio.h>
#include <stdlib.h>typedef struct {int id;
}ctx;ctx *createCtx(int id) {ctx *obj = (ctx *)malloc(sizeof(ctx));obj->id = id;return obj;
}
*/
import "C"
import ("fmt"
)func main() {var ctx *C.ctx = C.createCtx(100)fmt.Printf("id : %d\n", ctx.id)
}

运行结果如下:

go run main.go

id : 100

通过封装实现 C++ 接口的调用

首先我们新建一个 cpp 目录,并将 C++ 的代码放置在 cpp 目录下,C++ 代码需要提前编译成动态库(拷贝到系统库目录可以防止 go 找不到动态库路径),go 程序运行时会去链接。

├── cpp
│   ├── cwrap.cpp
│   ├── cwrap.h
│   ├── test.cpp
│   └── test.h
└── main.go

其中 test.cpp 和 test.h 是 C++ 接口的实现;cwrap.h 和 cwrap.cpp 是封装的 C 接口的实现。

1) test.h

#ifndef __TEST_H__
#define __TEST_H__#include <stdio.h>class Test {public:void call();
};#endif

2) test.cpp

#include "test.h"void Test::call() {printf("call from c++ language\n");
}cwrap.cpp#include "cwrap.h"
#include "test.h"void call() {Test ctx;ctx.call();
}

3) cwrap.h

#ifndef __CWRAP_H__
#define __CWRAP_H__#ifdef __cplusplus
extern "C" {
#endif
void call();#ifdef __cplusplus
}
#endif#endif

4) main.go

package main/*
#cgo CFLAGS: -Icpp#cgo LDFLAGS: -lgotest#include "cwrap.h"
*/
import "C"func main() {C.call()
}
http://www.hkea.cn/news/84530/

相关文章:

  • 做网站推广代理上海网络推广服务
  • wordpress可以做大吗搜索引擎优化的英语简称
  • 民治专业做网站公司中国企业500强排行榜
  • 潍坊 公司 网站seo点击排名器
  • 网站可以做赌博广告建站宝盒
  • 运城市做网站英文seo外链
  • 江宁网站建设如何建立网上销售平台
  • 淄博企业网站建设有限公司搜索引擎关键词竞价排名
  • 网站的优点企业专业搜索引擎优化
  • 哪里有软件开发培训机构无锡seo培训
  • 网站怎么做反链seo是什么品牌
  • 技术型网站做哪一种好软文范例大全100
  • 百度搜索什么关键词能搜到网站seo高效优化
  • 网站搭建分站需要多少钱互联网营销策划
  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用
  • wordpress 回收站在哪个文件夹营销方式和手段
  • 垂直型电商网站如何做快速排名软件哪个好
  • 做产品推广有网站比较好的免费自助建站平台
  • 番禺网站建设公司排名百度推广页面投放
  • 沈阳做微网站百度收录刷排名
  • 网站建设与管理技术发展seo是什么意思如何实现
  • 手机游戏开发制作公司最新seo视频教程
  • 网站优化过度被k长春seo排名公司
  • wordpress移除谷歌字体seo网站推广与优化方案
  • 十大景观设计公司排名seo权重查询
  • 水友做的yyf网站十大免费引流平台
  • 东莞公司网站制作百度识图网页版 在线
  • 企业级网站内容管理解决方案网站关键词快速排名服务
  • 影视采集网站怎么做收录关键词是网站seo的核心工作