【发布时间】:2020-12-08 19:32:58
【问题描述】:
如果这个问题没有意义或者看起来很简单,请原谅我,但我想了解这些头文件是如何实现的
是否可以在头文件中声明 int 等类型的变量?
我有以下代码,我声明窗口的行和窗口的尺寸存在问题。编译器说有多个定义首先在主文件中定义,我只是有#include "core.h" 并在 core.cpp 中再次定义,其中我再次有一个#include "core.h"。
#ifndef SFMLAPP_CORE_H
#define SFMLAPP_CORE_H
#include "SFML/Graphics.hpp"
#include <iostream>
sf::RenderWindow* window;///Window
float ScreenW,ScreenH;///Dimensions of the window
struct position ///used in position handiling
{
float x=-1;
float y=-1;
};
void printText(position pos,std::string Text,float size,float outlineSize);
#endif //SFMLAPP_CORE_H
【问题讨论】:
-
值得了解C++ compilation process,这将回答您的问题等等。
-
请不要用 C 标记 C++ 的东西,另请参阅这些标记的描述!作为新用户,也可以使用tour 并阅读How to Ask。
-
可以,但不推荐,除非变量是
const。全局变量会让人头疼。 -
如果你使用的是C++17,你可以声明它们
inline。 -
最好不要在头文件中定义变量。每个包含头文件的源文件都将获得该变量的一个实例。尝试在不使用全局变量的情况下实现您的代码。
标签: c++