Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更新使用c中的#define定义的变量的值_C - Fatal编程技术网

更新使用c中的#define定义的变量的值

更新使用c中的#define定义的变量的值,c,C,用C语言 如果我使用#define定义一个值 例如: 我可以在程序中进一步更新状态的值吗? 如果可能的话,告诉我怎么做?预处理器是一个文本替换系统。换句话说,当您在程序的其他地方使用符号STATE时,它将被其定义所取代(1) 例如,如果您编写: printf("%d\n", STATE); 预处理器用1替换STATE,编译器实际“看到”的是: 如果您试图在C代码中更新状态,那么在赋值给r值时会出现错误 如果要在预处理器中重新定义状态,可以执行以下操作: #define STATE 1 #und

用C语言 如果我使用#define定义一个值 例如:

我可以在程序中进一步更新
状态的值吗?

如果可能的话,告诉我怎么做?

预处理器是一个文本替换系统。换句话说,当您在程序的其他地方使用符号
STATE
时,它将被其定义所取代(
1

例如,如果您编写:

printf("%d\n", STATE);
预处理器用
1
替换
STATE
,编译器实际“看到”的是:

如果您试图在C代码中更新
状态
,那么在赋值给r值时会出现错误

如果要在预处理器中重新定义状态,可以执行以下操作:

#define STATE 1
#undef STATE
#define STATE 2

这不是一个变量。您应该阅读C预处理器的工作原理。如果在几行代码之外使用,这样的代码是非常危险的,被认为是不好的做法。在没有更多信息的情况下,OP想要什么也不清楚。
printf("%d\n", 1);
#define STATE 1
#undef STATE
#define STATE 2