C++ 定义与标识符相同的宏有什么用
在查看poco库时,我看到一些宏具有相同的标识符和替换文本: 例如,在XML/inlucde/XML/expat.h文件中C++ 定义与标识符相同的宏有什么用,c++,c,macros,C++,C,Macros,在查看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
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
我想知道这样定义宏有什么用。这里我可以想到两个用例:
- 如果标识符是
#请在之前的其他地方定义
d,以使一切正常工作。您不想使用它定义的值,对吗?因此,在这里,您可以确保使用该标识符的代码是有效的
- 允许
对标识符进行加密(即检查它们是否已定义)李>#ifdef
- 这看起来确实很荒谬,不是吗?我唯一的想法是,它允许您在符号上使用
,但在这个特定示例中我看不出这有什么用处。我们来猜测一下,但这样您就可以#ifdef
它们了?#ifdef