
# C调用C++函数，函数符号找不到
**原因：**被调用的函数未遵循C的调用约定，导致函数符号编译时按C++的命名修饰规则编译，而在调用处按C的命令修饰规则编译，调用时就会找不到定义。
**解决方案：**请在函数定义和声明前添加如下C的调用约定：
```
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif /* __cplusplus */
#endif /* __cplusplus */
/* code */
...
#ifdef __cplusplus
#if __cplusplus
}
#endif /* __cplusplus */
#endif /* __cplusplus */
```
![](https://support.huaweicloud.com/faq-LiteOS/public_sys-resources/notice_3.0-zh-cn.png)
C++调用C函数，也存在类似问题，请在声明前添加C的调用约定。
