Playdate C游戏开发中extern全局变量未定义引用问题求助
Playdate C游戏开发中extern全局变量未定义引用问题求助
嘿,各位Playdate C开发的大佬们,我最近卡个棘手的问题上了,想请大家支支招!
我正在用C写一款Playdate游戏,现在碰到了编译错误——所有用到pd和pdsys这两个指针变量的函数都报未定义引用的错。情况是这样的:
- 我在
global.h头文件里用extern const声明了这两个指针,打算作为全局变量在各个模块里共用 - 但这俩变量的赋值时机很特殊,只能在Playdate API触发初始化事件的
eventHandler()方法里完成,也就是收到kEventInit事件时,把API传递过来的指针赋值给它们
我也明白变量得先定义才能用,但现在就是搞不懂,明明已经用extern声明了,链接器怎么还找不到它们的定义呢?而且赋值只能在初始化回调里做,这顺序上该怎么处理才不会报错啊?
我目前的核心疑惑点:
- 是不是
extern的用法哪里错了?是不是还需要在某个源文件里额外做变量定义? - 怎么确保所有用到这两个指针的函数,都是在初始化赋值完成之后才被调用的?
- 用
const修饰这两个指针会不会影响赋值?我声明的是extern const PlaydateAPI* pd;和extern const PlaydateSystem* pdsys;,这个const的位置对吗?
备注:内容来源于stack exchange,提问作者JaydedCompanion
相关产品推荐
相关产品推荐

