在 C 和 C++ 文件之间共享一个全局变量

Sharing A global variable between C and C++ Files

我有两个文件。一个是 C 文件,另一个是 C++ 文件。

在main.C

char globalvar = 0;

int main()
{
     .....
}

在main.h

extern char globalvar;

在file2.cpp

#include "main.h"

int function()
{
    globalvar = 5;  //ERROR, globalvar is undefined.
    ...

}

所以基本上我有一个 C 部分和 C++ 部分的项目。我在 main.c 中声明了一个全局变量 我已经能够在所有 C 文件中成功访问这个全局变量,但是 C++ 文件无法识别它。

有没有人对正在发生的事情有任何想法?

如有任何帮助,我们将不胜感激!

你的main.h应该看起来像

#ifdef __cplusplus
extern "C" {
#endif
extern char globalvar;
#ifdef __cplusplus
}
#endif

确保 globalvar 具有 C 链接。