【发布时间】:2014-12-30 07:48:08
【问题描述】:
我正在从 sourceforge 分析 FileTransfer 开源项目的源代码。我是 C++ 新手,遇到了以下宏:
#define USES_CONVERSION int _convert; (_convert); UINT _acp = ATL::_AtlGetConversionACP() /*CP_THREAD_ACP*/; (_acp); LPCWSTR _lpw; (_lpw); LPCSTR _lpa; (_lpa)
我了解预处理器在简单宏中完成替换的基本思想,例如:
#define PI 3.14
但我不理解上面显示的长宏(第一个)。有人会解释一下吗?
【问题讨论】:
-
这真的不难,预处理器主要进行与编程语言(此处为 C++)无关的文本替换,因此它只是将
USES_CONVERSION扩展到它看到该标记的任何地方,并在 @ 上跟随它的整个文本987654324@ 行,就像复制粘贴一样。
标签: c++ replace macros c-preprocessor