在C编程语言中更改菜单中的#define值

问题描述 投票:0回答:2

我正在创建一个游戏项目,允许用户使用菜单选择游戏大小(2x2、3x3、4x4 等)。目前游戏大小变量是在 #define 又名常量下声明的。我是否必须将游戏大小设为全局变量?如果是这样,怎么办?

请给我一些如何做的指导。我还是 C 编程语言的初学者。

c constants
2个回答
2
投票

如果它被声明为 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
  ...
}

0
投票

它只是将您赋予它的名称绑定到特定值。 所以你实际上可以取消它的定义并重新定义它。 只需打印出 TEST 您就会看到变化。 我并不是说你应该这样做,你可能会遇到麻烦。例如,如果您使用上述定义来设置某个向量的大小,您可能会设置/获取越界。小心...您可能需要实现一些已更改的功能来重置/重新初始化内容。

#define TEST value //init
//later in some other function
#ifdef TEST
#undef TEST
#endif
#define TEST NewValue
© www.soinside.com 2019 - 2024. All rights reserved.