C++中如何调用C代码

Posted Overboom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中如何调用C代码相关的知识,希望对你有一定的参考价值。

背景:为什么会在C++代码中调用C代码

  1. 与状态机交互的时候,状态机模型在matlab中生成的是C代码
  2. 拿到别的团队开放的三方库,对应的头文件和接口也是C代码

C++中要使调用C函数会出现函数未定义的错误
要想不报错(未定义错误)其实很简单,只需要两步:
1> 使用extern “C” 对原C文件的头文件进行修改
例如:
原C文件的头文件:

#ifndef LIST_H
#define LIST_H

#include <stdio.h>
#include<stdlib.h>
#include<string.h>

#endif // LIST_H

修改后的头文件:

#ifndef LIST_H
#define LIST_H

#ifdef __cplusplus
extern "C" 
#endif

#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#ifdef __cplusplus

#endif

#endif // LIST_H

2> 对在cpp头文件中的引用#include的格式进行修改
例如:

原引用:

#include"list.h"

修改后的引用:

extern "C" 
#include"list.h"

以上是关于C++中如何调用C代码的主要内容,如果未能解决你的问题,请参考以下文章

如何让python调用C和C++代码

C语言或者C++如何调用一个http接口并得到返回结果?

如何在C语言里调用opencv C++函数?

如果没有可用的 c++ 编译器,C 语言可以调用用 c++ 编写的 DLL 吗?

C或C++语言连接ACCESS数据库代码是啥

c#调用C、C++编写的dll