3 回答
TA贡献1883条经验 获得超3个赞
全局变量应extern在两个源文件都包含的头文件中声明,然后仅在这些源文件之一中定义:
普通
extern int global;
source1.cpp
#include "common.h"
int global;
int function();
int main()
{
global=42;
function();
return 0;
}
source2.cpp
#include "common.h"
int function()
{
if(global==42)
return 42;
return 0;
}
TA贡献1860条经验 获得超9个赞
您添加一个“头文件”,该文件描述模块source1.cpp的接口:
source1.h
#ifndef SOURCE1_H_
#define SOURCE1_H_
extern int global;
#endif
source2.h
#ifndef SOURCE2_H_
#define SOURCE2_H_
int function();
#endif
并在每个使用此变量的文件中添加#include语句,并在(重要)变量中定义该变量。
source1.cpp
#include "source1.h"
#include "source2.h"
int global;
int main()
{
global=42;
function();
return 0;
}
source2.cpp
#include "source1.h"
#include "source2.h"
int function()
{
if(global==42)
return 42;
return 0;
}
尽管没有必要,但我建议为该文件使用名称source1.h,以表明它描述了模块source1.cpp的公共接口。以相同的方式,source2.h描述了source2.cpp中公共可用的内容。
- 3 回答
- 0 关注
- 520 浏览
添加回答
举报