我有两个文件。一个是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 ++文件无法识别它。
有没有人对发生的事情有任何想法?
任何帮助将不胜感激!
答案 0 :(得分:8)
您的main.h
应该是
#ifdef __cplusplus
extern "C" {
#endif
extern char globalvar;
#ifdef __cplusplus
}
#endif
确保globalvar具有C
链接。