我正在尝试理解显式读取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
};
答案 0 :(得分:1)
由于宏的第一部分(LFE _ ## name)只是连接两个部分,因此对LFE_API的调用是创建一个名为name的变量,其类型为LFE ## name,例如:
LFE_API(Init)扩展为LFE_Init Init;
答案 1 :(得分:1)
LFE_Init Init;
等
在代码上运行g ++ -E以查看生成的内容。结构元素需要类型和名称。