ST意法半导体
直播中

陈存楼

7年用户 1093经验值
私信 关注
[问答]

如何在C++中包含C代码?

我有一个问题,我不能在 C++ 中包含 C 代码,反之亦然。不同的站点建议通过在 C++ (Model.hpp) 的头文件中包含 C 的头文件来解决这个问题,例如:
#ifdef __cplusplus
外部“C”{
#万一
#include "coreTransferBufferAPI.h"
#ifdef __cplusplus
      }
#万一
在代码文件 Model.cpp 中,我尝试使用此标头中名为 (CB_Display_GetValues(&values) 的函数。
CB_DisplayValues_t 也在此标头中定义,但未显示任何错误。
浮动模型::getTempValue ()
{
      CB_DisplayValues_t 值;
      如果(CB_Display_GetValues(&values)== REPORT_OK )
      {
            返回值.cellTemperature;
      }
      返回空值;
}
函数 ( CB_Display_GetValues(&values) ) 的调用给出了未定义的引用错误:
/../TouchGFX/gui/src/model/Model.cpp:32: 未定义对“CB_Display_GetValues”的引用
你有这个问题的解决方案或者你知道如何解决吗?在 C 中包含 C++ 代码如何工作(相反的方式)?
非常感谢,节日快乐,K.Frey1








回帖(1)

袁沁茹

2023-1-11 09:59:15
从 C++ 调用 C 代码很容易。确保在调用函数之前声明该函数(通常通过包含适当的标头)并仅调用该函数。可能存在打字错误或其他错误,导致此方法无法在您的案例中使用。
从 C 调用 C++ 代码更复杂。您需要通过将函数括在 extern "C" 大括号中来确保函数具有 C 链接,然后调用它们。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分