****如只想知道怎样就能实现C/C++混合编程而不深究为什么的话, 可以一拉到底直接看总结.****
首先, 在介绍C/C++混合编程之前, 先思考几个问题
1. C/C++混合编程是什么?
2. C/C++混合编程有什么用?
3. C/C++混合编程应该怎么实现?
下面, 简单讲讲我对C/C++混合编程的理解 :
1. C/C++混合编程是什么?
就像问题本身所说, C/C++混合编程也就是一个工程中, 在C函数中调用C++函数的方法, 在C++的函数中能够调用C函数的方法.
2. C/C++混合编程有什么用?
在我们日常开发中, 也许会遇到这么一些情况, 同事A, C非常牛逼, 但是对C++一窍不通; 同事B, C++信手拈来, 但是对C却满头雾水. 但是在工作中有这么一种需求, 同事A需要用到C++的方法, 同事B需要用到C的方法, 这怎么办?
没错, 最简单的就是, 同事A把C的代码写好, 然后同事B只管调用即可, 同理, 同事A只管调用同事B写好的C++代码, 各司其职, 提高工作效率.
3. C/C++混合编程应该怎么实现?
那么, 这混合编程究竟要怎么实现呢?
在介绍之前, 我们先简单了解下以下几个概念
1. 函数重载
2. C++的名字改编机制
3. extern 及 extern "C"
* 函数重载(Overloading)
C++和Java中的函数重载的定义一致,
即在相同的作用域内, C++允许多个函数名称相同, 而形参列表不同, 如下图所示 :
函数重载
然而大家有没有想过为什么C++支持函数重载, 而C却不支持函数重载呢?
这个就要涉及到C++的名字改编机制了. 请往下看~
* C++的名字改编机制
在C中,
void test(); // 该函数编译后编译器会对函数名称改写成 _test