写在前面:借写课程大作业的时候,摆脱平常只写百来行代码的局限,尝试使用头文件使代码条理更清晰。结果发现想象中.cpp的“全局”并非实际的项目的全局。折腾了许久,得到此篇收获总结。
问题描述:
为了减少小游戏编程中函数复杂的参数传递,在.cpp文件中定义了如下“个人自以为是全局变量”的变量
/*********************全局变量***************************/
struct Player player[Playernum];//两个玩家
struct Shell shell[Playernum];//两个玩家的武器
struct Wind wind;//风力与风向
int turn;//玩家轮回
int GameMode;游戏模式选择 0为普通对战 1为无尽模式
/*----------无尽模式 ---------------*/
IMAGE enemy_pic;//ai的图片
IMAGE enemy_pic_mask;//ai的图片掩码
List Leftlist, Rightlist;//无尽模式下ai链表
/*---------- micro map ---------------*/
IMAGE GPS_image; // 迷你地图,用于显示游戏者在地图中的位置
POINT GPS_position[2]; // 迷你地图中玩家的显示位置
SIZE GPS_size; // 迷你地图的尺寸
并希望在.h头文件定义的函数中对.cpp定义变量进行调用。
结果发生如下报错:
解决方案:
在.h头文件中进行外部变量extern的声明
/*********************全局变量***************************/
extern struct Player player[Playernum];//两个玩家
extern struct Shell shell[Playernum];//两个玩家的武器
extern struct Wind wind;//风力与风向
extern int turn;//玩家轮回
extern int