共享C和C ++文件之间的全局变量

时间:2015-01-29 05:59:42

标签: c++ c scope

我有两个文件。一个是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 ++文件无法识别它。

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

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:8)

您的main.h应该是

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

确保globalvar具有C链接。