我正在尝试理解显式读取 dll 的 C++ 代码。
有谁知道下面的行 #define LFE_API(name) LFE_##name name
是如何工作的?
我理解 #define LFE_API(name) LFE_##name
但对最后一个“名称”感到困惑。
struct Interface
{
# ifdef LFE_API
# error You can't define LFE_API before.
# else
# define LFE_API(name) LFE_##name name
LFE_API(Init);
LFE_API(Close);
LFE_API(GetProperty);
# undef LFE_API
# endif
};
最佳答案
由于宏的第一部分 (LFE_##name) 只是连接了两个部分,因此调用 LFE_API 会创建一个名为 name 且类型为 LFE##name 的变量,例如:
LFE_API(Init) 扩展为 LFE_Init Init;
关于c++ - 具有 3 个术语的可变参数宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3516953/