Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在C++;头文件?_C++ - Fatal编程技术网

C++ 如何在C++;头文件?

C++ 如何在C++;头文件?,c++,C++,我目前有一些头文件。一个名为“globalVar.h”表示全局变量,一个名为“generate.h”表示与生成有关的变量,我有一个名为“screen.h”表示与屏幕有关的变量。每当我包含这些变量并运行文件时,我的每个变量都会出现与此完全相同的错误: globalVar.h:7:19: warning: 'y' initialized and declared 'extern' extern int x = 1, y = 1; // player coordinates 为什么会这样?对于本例

我目前有一些头文件。一个名为“globalVar.h”表示全局变量,一个名为“generate.h”表示与生成有关的变量,我有一个名为“screen.h”表示与屏幕有关的变量。每当我包含这些变量并运行文件时,我的每个变量都会出现与此完全相同的错误:

globalVar.h:7:19: warning: 'y' initialized and declared 'extern'
 extern int x = 1, y = 1; // player coordinates
为什么会这样?对于本例,“globalVar.h”标题的代码如下:

\ifndef globalvarh
#定义globalvarh
#包括
#包括
外部int x=1,y=1;//玩家坐标
外部运行状况=100;//球员健康
外部内部播放器=“@”;//玩家符号
外部内部gX,gY;//地精坐标
外部运行状况=100;//地精健康
外星小妖精='G';//地精符号
#恩迪夫
我做错什么了吗?我当然是这样,因为这对我来说很有意义,但我真的不知道头文件是如何工作的


有人有什么想法吗?

远离全局变量。当你这样做的时候,这样的问题就完全消失了。这些应该包含在特定范围内创建和使用的某种
struct
class
中。提示:当您声明某个
extern
时,您的意思是“在别处定义了这个东西”。你说“它是在别处定义的,也是这个值”,这是一个矛盾。这回答了你的问题吗@塔德曼:你知道开始学习这些的参考资料吗?因为我甚至不知道从哪里开始。我想我从来没有真正想过什么是
extern
。谢谢你的帮助。:)
#ifndef GLOBALVAR_H
#define GLOBALVAR_H

#include <iostream>
#include <windows.h>

extern int x = 1, y = 1; // player coordinates
extern int health = 100; // player health
extern int player = '@'; // player symbol

extern int gX, gY; // goblin coordinates
extern int health = 100; // goblin health
extern int goblin = 'G'; // goblin symbol

#endif