c调用c++函数
- c调用c++普通函数
#ifndef CPP_H #define CPP_H #include "extern_cpp.h" int add(int a, int b); char add(char a, char b); #endif // CPP_H
cpp_test/extern_cpp.h
#ifndef EXTERN_CPP_H #define EXTERN_CPP_H #ifdef __cplusplus extern "C" { #endif int add_int(int a, int b); char add_char(char a, char b); #ifdef __cplusplus } #endif #endif // EXTERN_CPP_H
#include "cpp.h" #include <iostream> int add(int a, int b) { std::cout << "int a+b=" << a+b << std::endl; return a+b; } char add(char a, char b) { std::cout << "char a+b=" << a+b << std::endl; return a+b; } int add_int(int a, int b) { return add(a,b); } char add_char(char a, char b) { return add(a,b); }
c_test/main.c
#include <stdio.h> #include "../cpp_test/extern_cpp.h" int main(int argc, char *argv[], char *env[]) { printf("%d\n", add_int(2,3)); printf("%c\n", add_char(20, 30)); return 0; }
编译 g++ -c cpp.cpp
- c调用c++类函数
#ifndef CPP_H #define CPP_H #include "extern_cpp.h" struct example { public: example(void); example(int i, int j); ~example(void); int add(void); int a,b; }; #endif // CPP_H
cpp_test/extern_cpp.h
#ifndef EXTERN_CPP_H #define EXTERN_CPP_H #ifdef __cplusplus extern "C" { #endif typedef struct example example; example* exmaple_create(int a, int b); void example_delete(example* e); int example_add(example* e); #ifdef __cplusplus } #endif #endif // EXTERN_CPP_H
#include "cpp.h" #include <iostream> example::example(void){} example::example(int i, int j):a(i),b(j){} example::~example(void){} int example::add(void) { std::cout << "a+b=" << a+b << std::endl; return a+b; } example* exmaple_create(int a, int b) { return new example(a, b); } void example_delete(example* e) { delete e; } int example_add(example* e) { return e->add(); }
c_test/main.c
#include <stdio.h> #include "../cpp_test/extern_cpp.h" int main(int argc, char *argv[], char *env[]) { example *e = exmaple_create(2, 3); printf("%d\n", example_add(e)); example_delete(e); return 0; }
gcc main.c ../cpp_test/cpp.o -lstdc++

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
HTML5语法
HTML编码惯例 Web开发人员在使用HTML时,往往有不确定的编码风格和语法. 2000和2010之间,许多Web开发人员从HTML转换到XHTML. 在XHTML中,开发人员被迫写出有效的和结构良好的代码. HTML5说到的代码验证有点儿马虎. 聪明和未来的证明 一个一贯使用的风格,让别人了解你的HTML更容易. 在未来,如XML阅读器,可以阅读你的HTML. 使用形式好的更“接近XHTML的”语法,可以更聪明. 始终保持您的代码整洁,干净,并形成良好. 使用正确的文档类型 始终将文档类型声明为文档中的第一行: <!DOCTYPE html> 如果你想私有小写标签,您可以使用: <!doctype html> 使用小写的元素名称 HTML5允许混合大写和小写字母的元素名称. 我们建议使用小写元素名称,因为: 混合大写和小写的名字是不好的 开发者通常使用小写名称 (像在XHTML里面一样) 小写字母看起来更干净 小写更容易写 不好的: <SECTION> <p>这是一个段落.</p> </SECTION> 非常不...
- 下一篇
我爬取了人人都是产品经理6574篇文章,发现产品竟然在看这些
作为互联网界的两个对立的物种,产品汪与程序猿似乎就像一对天生的死对头;但是在产品开发链条上紧密合作的双方,只有通力合作,才能更好地推动项目发展。那么产品经理平日里面都在看那些文章呢?我们程序猿该如何投其所好呢?我爬取了人人都是产品经理(http://www.woshipm.com)产品经理栏目下的所有文章,看看产品经理都喜欢看什么。 1. 分析背景 1.1. 为什么选择「人人都是产品经理」 人人都是产品经理是以产品经理、运营为核心的学习、交流、分享平台,集媒体、培训、招聘、社群为一体,全方位服务产品人和运营人,成立8年举办在线讲座500+期,线下分享会300+场,产品经理大会、运营大会20+场,覆盖北上广深杭成都等15个城市,在行业有较高的影响力和知名度。平台聚集了众多BAT美团京东滴滴360小米网易等知名互联网公司产品总监和运营总监。选取这个社区更有代表性。 1.2. 分析内容 分析人人都是产品经理产品经理栏目下的 6574 篇文章的基本情况,包括收藏数、评论数、点赞数等 发掘最受欢迎的文章及作者 分析文章标题长度与受欢迎程度之间的关系 展现产品经理都在看什么 1.3. 分析工具 P...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Windows10,CentOS7,CentOS8安装Nodejs环境