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

ここで 2 つの使用例を考えることができます。

  • 識別子が以前に別の場所にあった場合、すべてが機能するようにします#define。定義された値を使用したくありませんよね?したがって、ここでは、その識別子を使用するコードが有効であることを確認します。
  • #ifdef識別子を許可します(つまり、それらがすでに定義されているかどうかを確認します)。
于 2012-04-09T20:24:49.493 に答える
1

それはまったく無意味に思えますね。私が持っている唯一の考えは、シンボルで使用#ifdefできるということですが、この特定の例ではそれが役立つとは思えません。

于 2012-04-09T20:26:38.120 に答える