【问题标题】:update the value of a variable which is defined using #define in c [duplicate]更新在c中使用#define定义的变量的值[重复]
【发布时间】:2017-06-12 04:18:21
【问题描述】:

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

#define STATE 1

我可以在程序中进一步更新STATE 的值吗? 如果可以的话,告诉我怎么做?

【问题讨论】:

  • 这不是一个变量。您应该了解 C 预处理器的工作原理。

标签: c


【解决方案1】:

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

例如,如果你写:

printf("%d\n", STATE);

预处理器将STATE 替换为1,编译器实际“看到”的是:

printf("%d\n", 1);

如果您尝试在 C 代码中更新 STATE,您会收到关于分配 r 值的错误。

如果你想在预处理器中重新定义状态,你可以这样做:

#define STATE 1
#undef STATE
#define STATE 2

【讨论】:

  • 这样的代码非常危险,如果在几行代码之外使用会被认为是不好的做法。如果没有更多信息,也不清楚 OP 想要什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
相关资源
最近更新 更多