我有两个文件。一个是 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 和 C++ 文件之间共享一个全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28207901/