在IAR嵌入式Workbench中混合使用c / c ++

时间:2013-05-24 10:55:45

标签: iar

我正在尝试stm32f4的一些示例项目。我想用一些c ++代码构建其中一些。

如果我添加一个cpp文件,则ide似乎正确识别它。如果我将语言设置为auto(基于扩展名),我的cpp文件将构建,其中包含一个类,很棒。

但我可以在它们之间连接吗?所有东西都编译(没有警告),但如果我从c调用cpp函数(无定义),则链接失败

有没有办法从cpp c调用c和c?

由于

1 个答案:

答案 0 :(得分:3)

是的,这是可能的。但是,您必须明确告诉C ++函数是C函数。您可以通过以下方式声明:

extern "C"
{
   void my_function(void);
}

为了确保头文件在C和C ++下都能正常工作,它们通常写成:

#ifdef __cplusplus
extern "C"
{
#endif
   void my_function(void);
#ifdef __cplusplus
}
#endif