簡體   English   中英

定義與標識符相同的宏有什么用

[英]what is the use of defining macros same as the identifier

在查看 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

我想知道這樣定義宏有什么用。

我可以在這里想到兩個用例:

  • 如果標識符之前在其他地方#define d,則使一切正常。 您不想使用它定義的值,對嗎? 所以在這里,您要確保使用該標識符的代碼是有效的。
  • 允許#ifdef ing 標識符(即檢查它們是否已經定義)。

這看起來確實很荒謬,不是嗎? 我唯一的想法是它允許您在符號上使用#ifdef ,但我看不到它在這個特定示例中有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM