我正在创建一个游戏项目,允许用户使用菜单选择游戏大小(2x2、3x3、4x4 等)。目前游戏大小变量是在 #define 又名常量下声明的。我是否必须将游戏大小设为全局变量?如果是这样,怎么办?
请给我一些如何做的指导。我还是 C 编程语言的初学者。
如果它被声明为 via
#define
那么它就不是一个变量,它是一个文字常量!将您的 gameSize
声明为(全局)变量(在任何函数之外),例如:
int gameSize;
然后通过一些交互(“什么样的菜单?GUI?文本?无论如何......)让用户更改它,例如:
int main(...) {
printf("Which game size would you like? "); // message on screen
scanf("%d",&gameSize); // waiting for a number
...
}
它只是将您赋予它的名称绑定到特定值。 所以你实际上可以取消它的定义并重新定义它。 只需打印出 TEST 您就会看到变化。 我并不是说你应该这样做,你可能会遇到麻烦。例如,如果您使用上述定义来设置某个向量的大小,您可能会设置/获取越界。小心...您可能需要实现一些已更改的功能来重置/重新初始化内容。
#define TEST value //init
//later in some other function
#ifdef TEST
#undef TEST
#endif
#define TEST NewValue