更改已定义常量的值

时间:2013-11-15 08:29:29

标签: c

我正在用C编写一个程序而且我遇到了一些困难。如果我定义一个常量(例如#define MAX 100),我可以在某些情况下改变程序中它的值吗?在主要的我写的例如MAX = 5,当我运行程序时,我得到以下内容:赋值中的无效左值。

4 个答案:

答案 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)。