C 更改已定义常量的值
我正在用C写一个程序,我面临一些困难。如果我定义了一个常数(例如#define MAX 100),在某些情况下我能在程序中更改它的值吗??主要是我编写了MAX=5的例子,当我运行程序时,我得到以下结果:赋值中的左值无效 您可以使用C 更改已定义常量的值,c,C,我正在用C写一个程序,我面临一些困难。如果我定义了一个常数(例如#define MAX 100),在某些情况下我能在程序中更改它的值吗??主要是我编写了MAX=5的例子,当我运行程序时,我得到以下结果:赋值中的左值无效 您可以使用#unde和#define重新定义宏。但我不建议这样做,尤其是在头文件中执行时(因为所有包含头文件的文件都将具有新宏,如果以错误的顺序包含头文件,则无论如何都会具有错误的值)。您可以重新定义宏,再次使用#unde和#定义它。但我不建议这样做,特别是在头文件中执行时(因为
#unde
和#define
重新定义宏。但我不建议这样做,尤其是在头文件中执行时(因为所有包含头文件的文件都将具有新宏,如果以错误的顺序包含头文件,则无论如何都会具有错误的值)。您可以重新定义宏,再次使用#unde
和#定义它。但我不建议这样做,特别是在头文件中执行时(因为所有包含头文件的文件都会有新的宏,并且如果以错误的顺序包含头文件,则无论如何都会有错误的值)。因为有两个不同的最大值,下面的代码工作得更好
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
}
因为有两个不同的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
}
也许你可以使用这个代码
#ifdefine MAX
#undefine Max
#define MAX 5
---Your code---
#undefine MAX
#define MAX 100
也许你可以使用这个代码
#ifdefine MAX
#undefine Max
#define MAX 5
---Your code---
#undefine MAX
#define MAX 100
宏不应以这种方式使用。这就是为什么它是一个宏而不是一个变量
您需要的是全局变量()。宏不应以这种方式使用。这就是为什么它是一个宏而不是一个变量
您需要的是全局变量()。听起来您不需要常数,嗯?这里只是想检查一下,这听起来像是一个编译错误,而不是运行程序时会出现的错误:)#define是一个预处理器命令。在编译时的预处理过程中,代码中的所有MAX实例都将替换为100。看起来你想要一个类似于全局变量的东西,或者需要定义更多的常量。也许你可以详细说明你想要实现什么,然后答案可以更详细、更切题。我想写一个程序,其中MAX是数组b的维数。在主程序中,我们被要求给出维数(设为d)。但是在函数中,我用b进行了一些计算,其中维数仍然是MAX,所以我想用d替换MAX,这样我就不必用维数MAX对整个数组进行所有这些计算,当我只需要维数为d的数组时,听起来你不想要常数,嗯?事实上,在这里检查一下,这听起来像是一个编译错误,而不是运行程序时会出现的错误:)#define是一个预处理器命令。在编译时的预处理过程中,代码中的所有MAX实例都将替换为100。看起来你想要一个类似于全局变量的东西,或者需要定义更多的常量。也许你可以详细说明你想要实现什么,然后答案可以更详细、更切题。我想写一个程序,其中MAX是数组b的维数。在主程序中,我们被要求给出维数(设为d)。但是在函数中,我用b进行了一些计算,其中维数仍然是MAX,所以我想用d替换MAX,这样我就不必在整个数组上用维数MAX进行所有这些计算,而我只需要维数为d的数组。。