本文共 1220 字,大约阅读时间需要 4 分钟。
对于如何处理导致问题的常量,您有两种选择。
选项1
从标题中删除extern :
#ifndef GLOBALVAR_H
#define GLOBALVAR_H
#include "SDL.h"
const int SCREEN_WIDTH = 960;
const int SCREEN_HEIGHT = 960;
const int SCREEN_BPP = 32;
const int FRAMES_PER_SECOND = 30;
const int TILE_WIDTH = 64;
const int TILE_HEIGHT = 64;
const int TOTAL_TILES = 150;
const int TOTAL_SPRITES = 64;
extern SDL_Rect clip[144];
extern SDL_Surface* screen;
extern SDL_Surface* background;
extern SDL_Surface* Ike;
extern SDL_Surface* thetiles;
extern SDL_Event event;
#endif
如果这样做,则不得在GlobalVar.cpp定义变量。
选项2
从标题中删除初始值设定项:
#ifndef GLOBALVAR_H
#define GLOBALVAR_H
#include "SDL.h"
extern const int SCREEN_WIDTH; // = 960;
extern const int SCREEN_HEIGHT; // = 960;
extern const int SCREEN_BPP; // = 32;
extern const int FRAMES_PER_SECOND; // = 30;
extern const int TILE_WIDTH; // = 64;
extern const int TILE_HEIGHT; // = 64;
extern const int TOTAL_TILES; // = 150;
extern const int TOTAL_SPRITES; // = 64;
extern SDL_Rect clip[144];
extern SDL_Surface* screen;
extern SDL_Surface* background;
extern SDL_Surface* Ike;
extern SDL_Surface* thetiles;
extern SDL_Event event;
#endif
现在,您需要在GlobalVar.cpp定义和初始化常量。
这样做的缺点是您不能在需要编译时整数常量的上下文中使用SCREEN_WIDTH等名称,例如数组的维度或switch语句的case子句。
因此,选项1是更常用的技术。
转载地址:https://blog.csdn.net/weixin_29391349/article/details/117141637 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!