本篇文章我们主要讲解在C++中如何调用C语言的函数。
在我们之前的积累中,一些写好的程序模块用C已经完成了。
但是C++项目中又要重新写这些功能。
这个时候我们可以透过以下方法直接调用之前的函数模块。
下面我们举例说明:
三个文件总共:
cppCallCFun.cpp
CModule.c
CModule.h
cppCallCFun.cpp:
/****************************************************
* brief : C++中调用C函数
* author : shao
* date : 2020-02-24
* note : none
*
****************************************************/
#include <iostream>
#include "CModule.h"
using namespace std;
int main(void)
{
func1();
cout << "func2(2, 3) = " << func2(2, 3) << endl;
return 0;
}
CModule.c:
#include "CModule.h"
void func1(void)
{
printf("C function1!\n");
}
int func2(int a, int b)
{
return (a+b);
}
CModule.h:
#ifndef CMODULE_H
#define CMODULE_H
#include <stdio.h>
#if __cplusplus
extern "C" {
#endif
void func1(void);
int func2(int a, int b);
#if __cplusplus
}
#endif
#endif /* CMODULE_H */
结果如下:
在.cpp和.c文件中没有什么改动。
主要是在*.h中
我们添加
#if __cplusplus
extern "C" {
#endif
C语言的声明部分
...
#if __cplusplus
}
#endif
然后在cpp中包含一下c的头文件就可以正常调用了。