我正在用C编写一个程序而且我遇到了一些困难。如果我定义一个常量(例如#define MAX 100),我可以在某些情况下改变程序中它的值吗?在主要的我写的例如MAX = 5,当我运行程序时,我得到以下内容:赋值中的无效左值。
答案 0 :(得分:2)
您可以再次使用#undef
和#define
重新定义宏。不是我会推荐的,特别是如果在头文件中完成(因为#include
头文件将包含新宏的所有文件,并且如果您以错误的顺序包含头文件,则将具有错误的值反正)。
答案 1 :(得分:2)
由于有两个不同的MAX,以下代码效果更好。
const int cond1_max = 100;
const int cond2_max = 5;
int my_max = 0; // whatever works for you
按如下方式初始化你的最大值:
if(cond1)
my_max = cond1_max;
else if(cond2)
my_max = cond2_max;
else {
// your backup plan
}
答案 2 :(得分:1)
也许你可以使用这段代码。
#ifdefine MAX
#undefine Max
#define MAX 5
---Your code---
#undefine MAX
#define MAX 100
答案 3 :(得分:0)
宏不应该以这种方式使用。这就是为什么它是宏而不是变量。
您需要的是全局变量(http://farside.ph.utexas.edu/teaching/329/lectures/node19.html)。