【发布时间】:2017-06-12 04:18:21
【问题描述】:
在 C 语言中 如果我使用#define 定义一个值 例如:
#define STATE 1
我可以在程序中进一步更新STATE 的值吗?
如果可以的话,告诉我怎么做?
【问题讨论】:
-
这不是一个变量。您应该了解 C 预处理器的工作原理。
标签: c
在 C 语言中 如果我使用#define 定义一个值 例如:
#define STATE 1
我可以在程序中进一步更新STATE 的值吗?
如果可以的话,告诉我怎么做?
【问题讨论】:
标签: c
预处理器是一个文本替换系统。换句话说,当您在程序的其他地方使用符号 STATE 时,它会被其定义 (1) 所取代。
例如,如果你写:
printf("%d\n", STATE);
预处理器将STATE 替换为1,编译器实际“看到”的是:
printf("%d\n", 1);
如果您尝试在 C 代码中更新 STATE,您会收到关于分配 r 值的错误。
如果你想在预处理器中重新定义状态,你可以这样做:
#define STATE 1
#undef STATE
#define STATE 2
【讨论】: