我混合了 C C++ 代码。全部用 g++ 编译。无论我在哪里有 C 头文件,我都会在其中包含头文件的内容
#if defined(__cplusplus)
extern "C" {
#endif
和
#if defined(__cplusplus)
extern "C" {
#endif
但是在一个 C 头文件中,我遇到了 g++ 编译错误,我不小心将参数名称用作模板,这显然是不正确的,并且与 c++ 关键字模板冲突。
我知道我可以去更改这个参数名称,但我在想为什么这个extern "C"
声明不起作用,为什么头文件被视为 C++ 代码而不是我想要的 C。
g++ 版本 4.1.1 Linux Red Hat Enterprise。