c和c++生成函数符号规则不同

c++调用c      .cpp加extern"c"

extern"c"下包含的是以c语言的规则来处理的

extern"c"//extern"c"下包含的代码是以c语言的规则来处理的
{extern int Sum(int,int)
}

c调用c++:

1、c++源文件可以修改,.cpp加extern"c"

2、c++源文件不可以修改,加一个中间层MySum,MySum是对Sum的再包装

如下图所示b.c使用c的编译器,而a.c使用的编译器不能确定。

-Cplusplus  C++编译器里默认的宏。即若宏存在则是由C++编译器编译的

#ifdef ——Cplusplus
extern "c"
{#endifint Sum(int a,int b){return a+b;}#ifdef——Cplusplus}
}#endif

c++的引用——》别名

引用符号和类型结合    没有和类型结合就是取地址

引用的特点:

1、引用一定要初始化(底层以指针的形式支持在所有引用变量   使用的地方,系统自带解引用的过程)

int &b=a;

cout<<&b<<endl;//cout<<&(*b)<<endl;

2、引用不能引用不能取地址的数(寄存器里的值)

3、引用不能改变

4、引用变量使用时,使用的是引用变量,所引用的变量

常引用引用不能取地址的数据,首先数据生成临时量,常引用引用临时量(const int &c=15;            int &c=15(error))

函数不能返回局部变量的地址或引用(可能会导致数据错误 局部变量会在函数返回后被销毁 当函数调用完毕,栈指针回撤,函数生命周期结束,但这时内存存储的内容并没有改变   ,当这时调用其他函数时内存上的值可能被覆盖,所以可能会出现数据错误  )

static 局部变量//.data

c和c++(c whith class)的相互调用引用相关推荐

  1. python模块--如何相互调用自己写的模块

    一.模块相互调用同级目录调用时的两种方法 1 import module 2 print(module.add(3,8)) 3 4 from module import add 5 print(add ...

  2. 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js

    iOS js oc相互调用(JavaScriptCore) 从iOS7开始 苹果公布了JavaScriptCore.framework 它使得JS与OC的交互更加方便了. 下面我们就简单了解一下这个框 ...

  3. python和c++的相互调用教程

    日常工作中会遇到需要python与cpp代码之间的相互调用,工作的应用复杂,都是取决于代码的多少,但是总的方法不变,这里用两个简单例子说明下,有兴趣的筒子可以探讨下~~ 我的测试环境:ubuntu16 ...

  4. Objective-C学习笔记(十九)——对象方法和类方法的相互调用

    事实上在OC的对象方法(减号方法)和类方法(加号方法)并非相互独立的,它们也能够发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题.该样例还是以People类为基础. (一)对象方法调用类方法 ...

  5. 关于cocos2d-x 和安卓之间的相互调用

    最近在研究cocos2d游戏移植安卓需要调用很多方法,所以在研究之中写下它们之间相互调用 首先,cocos2d调用安卓 在一个.h文件中添加头文件 #include <jni.h> #in ...

  6. iOS架构-多工程联编及framework之间的相互调用(19)

    对于大公司,大工程来说,业务线很多,也时刻在变,功能模块要求能随时下线,或者业务不再需要了,就需要从主工程中移除相关工程或者库.以减小包的大小.多工程联编是一种多业务合作的一种方法. 有篇文章写的很详 ...

  7. Python实例浅谈之三Python与C/C++相互调用

    参考:http://blog.csdn.net/taiyang1987912/article/details/44779719 Python实例浅谈之三Python与C/C++相互调用 二.Pytho ...

  8. C#代码与javaScript函数的相互调用

    C#代码与javaScript函数的相互调用 问: 1.如何在JavaScript访问C#函数? 2.如何在JavaScript访问C#变量? 3.如何在C#中访问JavaScript的已有变量? 4 ...

  9. python和c学习-学习 Python与C相互调用

    缘由 稀里糊涂的,用 Python 或用 C++ Qt都能写点小程序出来.然后对Python + Qt开始有点兴趣:想学PyQt4,想了解PythonQt,也期待PySide的Windows版本.但总 ...

最新文章

  1. linux系统 大分区,linux大硬盘怎么分区
  2. 百练OJ:1007:DNA排序
  3. OPMS项目管理系--新增加项目报表统计
  4. WebBrowser内存泄露
  5. java 1.8新增功能_睡觉时:新增的Java 8新增功能
  6. 433M数传电台窄带无线通讯技术手册
  7. [Oracle] SQL*Loader 详细使用教程(3)- 控制文件
  8. linux c++ 函数效率,C++高精度性能测试函数
  9. 遵义 计算机应用能力,遵义市人力资源和社会保障局
  10. 实现类似shared_ptr的引用计数
  11. 怎么套dedecms(织梦cms)模板
  12. matlab fspecial disk,Matlab fspecial 用法详述,附示例
  13. 浅析游戏中的打击感如何实现
  14. 解决win10系统点击飞行模式后找不到WiFi连接问题
  15. java爬虫模拟post请求_java爬虫之使用HttpClient模拟浏览器发送请求方法详解
  16. 经验模态分解python_信号处理 - 经验模态分解 【1】
  17. IVY throws IOException Resetting to invalid mark原因及解决办法
  18. STM32基础(11)光敏传感
  19. springboot整合shiro
  20. 用UltralSO安装CentOS 和 Ubuntu

热门文章

  1. error: command ‘D:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe‘ f
  2. 首期「OSCHINA 开源软件趋势榜」榜单公布 | 有奖征文等你来
  3. 【“玩物立志”scratch少儿编程】坦克动荡-“穿墙控制”和“子弹反弹”的实现-含完整代码
  4. Python pygame 坦克大战
  5. 运用css3新属性transform写的盒子嵌套展开动画效果
  6. 华为OD机试 - 删除最少字符(Python) | 机试题算法思路 【2023-02】
  7. 测试POST传输工具【poster】。
  8. r语言中检测异常值_R中的异常值检测
  9. 有限覆盖定理证明其他实数完备性定理
  10. SP专场问题整理(一)