为什么要在c文件函数里调用c++文件函数?
很多现有代码都是c语言写的,我们需要对其进行扩展时,如果需要用到模板或类时,就需要使用c++编写,而且c++提供了STL,可以很方便的实现一些功能,所以使用c++编程可以减少工作量。
如何在c项目里编写c++文件代码?
- 将函数声明放在头文件中
- 把要被c函数调用的c++函数的声明放在
extern "C"{ ... }
语句块里 - 标准c++的头文件包含不能放在
extern "C"{ ... }
语句块里 - 示例:
test_c.c里的函数c_test()调用了test_cpp1.cpp文件里的函数cpp_test()。
//test_c.h
#ifndef TEST_C_H
#define TEST_C_H
void c_test(int *array,int n);
#endif
//test_c.c
#include "test_c.h"
#include "test_cpp1.hpp"
void c_test(int *array,int n){
for(int i=0;i<n;++i){
array[i]=i;
}
cpp_test<