在 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
链接。
我有两个文件。一个是 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
链接。