2

在查看 poco 库时,我看到了一些具有相同标识符以及替换文本的宏:

例如在文件 XML/inlucde/XML/expat.h

  47   XML_STATUS_ERROR = 0,
  48 #define XML_STATUS_ERROR XML_STATUS_ERROR
  49   XML_STATUS_OK = 1,
  50 #define XML_STATUS_OK XML_STATUS_OK
  51   XML_STATUS_SUSPENDED = 2
  52 #define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED

我想知道像这样定义宏有什么用。

4

2 回答 2

4

我可以在这里想到两个用例:

  • #define如果标识符以前在其他地方是 d,则使一切正常。您不想使用它定义的值,对吧?因此,在这里,您确保使用该标识符的代码是有效的。
  • 允许#ifdef识别标识符(即检查它们是否已经定义)。
于 2012-04-09T20:24:49.493 回答
1

这似乎很荒谬,不是吗?我唯一的想法是它允许您#ifdef在符号上使用,但我看不出这在这个特定示例中有用。

于 2012-04-09T20:26:38.120 回答