Headers 和全局变量的问题
Issue with Headers and Global Variable
所以我在声明全局变量(在 header 中)和使用它时遇到了问题。我已经阅读了 header 文件及其工作原理,但我不明白为什么我的代码不起作用。
这是我所拥有的(以简化的方式):
主线:
// main.cpp
#include "source.hpp"
int main()
{
return variable;
}
来源:
// source.cpp
#include "source.hpp"
variable = 17;
Header:
// source.hpp
#ifndef __SOURCE_HPP_INCLUDED__
#define __SOURCE_HPP_INCLUDED__
extern int variable;
#endif // __SOURCE_HPP_INCLUDED__
我试过在 header 文件中使用和不使用 extern。
当我尝试(在源代码中编译)时出现此错误:
'variable'没有命名类型
我哪里理解不正确?
此外,当我在 main.cpp 中声明相同的变量时,编译器会返回有关 'redefining' 变量的错误。这是为什么?
在source.cpp中你需要定义变量:
int variable = 17;
所以我在声明全局变量(在 header 中)和使用它时遇到了问题。我已经阅读了 header 文件及其工作原理,但我不明白为什么我的代码不起作用。
这是我所拥有的(以简化的方式):
主线:
// main.cpp
#include "source.hpp"
int main()
{
return variable;
}
来源:
// source.cpp
#include "source.hpp"
variable = 17;
Header:
// source.hpp
#ifndef __SOURCE_HPP_INCLUDED__
#define __SOURCE_HPP_INCLUDED__
extern int variable;
#endif // __SOURCE_HPP_INCLUDED__
我试过在 header 文件中使用和不使用 extern。 当我尝试(在源代码中编译)时出现此错误: 'variable'没有命名类型 我哪里理解不正确?
此外,当我在 main.cpp 中声明相同的变量时,编译器会返回有关 'redefining' 变量的错误。这是为什么?
在source.cpp中你需要定义变量:
int variable = 17;