所以我在声明一个全局变量(在标题中)并使用它时遇到了问题。我已经对头文件以及它们如何工作做了一些阅读,但我无法理解为什么我的代码无效。
这就是我所拥有的(以简化的方式):
主要
// main.cpp
#include "source.hpp"
int main()
{
return variable;
}
来源:
// source.cpp
#include "source.hpp"
variable = 17;
标题
// source.hpp
#ifndef __SOURCE_HPP_INCLUDED__
#define __SOURCE_HPP_INCLUDED__
extern int variable;
#endif // __SOURCE_HPP_INCLUDED__
我在头文件中尝试使用和不使用 extern 。 当我尝试(在源代码中编译)时出现此错误: 'variable'未命名类型 我不理解的是什么?
此外,当我在 main.cpp 中声明相同的变量时,编译器确实会抛出有关“重新定义”变量的错误。那是为什么?
答案 0 :(得分:2)
在source.cpp中,您需要定义变量:
int variable = 17;