所以我在声明全局变量(在标题中)并使用它时遇到问题。我已经阅读了一些头文件及其工作方式,但是我不明白为什么我的代码不起作用。

这是我的内容(以简化的方式):

主要:

// 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__

我试过头文件中是否包含extern。
当我尝试(在源代码中编译)时出现此错误:
“变量”未命名类型
我没有正确理解什么?

另外,当我在main.cpp中声明相同的变量时,编译器会抛出有关“重新定义”变量的错误。这是为什么?

最佳答案

在source.cpp中,您需要定义变量:

int variable = 17;

关于c++ - header 和全局变量问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34983772/

10-11 22:57
查看更多