使用__cplusplus报错标识符重复是怎么回事

img


#ifndef _BSP_H_
#define _BSP_H_

#ifdef __cplusplus
    extern "C" {
#endif



#include "CommDef.h"
#include "BSP_UART.h"

void HWDelay(ulong ulDelayTimes);

void HWDelay_us(ulong ulDelayTimes);


#ifdef __cplusplus
}
#endif

#endif

我想在C文件调用C++文件的函数,但是一直报这些错误,这是啥原因啊,是我写错了吗,报错都error: #40: expected an identifier
error: #65: expected a ";"
error: #169: expected a declaration
说我标识符重复啥的,看不懂哪里重复了

参考:


关于 _cplusplus 的一些说明_Solomon_love的博客-CSDN博客 编译器在编译过程会对一些函数,变量重命名:加上一些字符和符号。这种重命名的过程在编译器内部是可逆的,错误提示的代码为逆过程,即恢复命名。因为存在这种重命名的过程,c++ 函数在提供给 c 函数使用的过程会出现一些问题。例如找不到相应的函数,未实现函数。一些解决办法: _cplusplus_cplusplus 标识c++编译器#ifdef __cplusplusE https://blog.csdn.net/mrlzl9/article/details/53096490

问题解决了,是在其他C文件用了,导致出问题了,把其他调用过这个的函数全改了CPP文件就好了