#define 如何使用函数指针?

How does #define work with function pointers?

请看下面的代码:

SomeStructure* SomeFunc();
#define kkData (*SomeFunc())

问题:kkData代表什么?

编辑:从第二行删除了分号。

这个指令

#define kkData (*SomeFunc());

表示调用函数 SomeFunc 并取消引用指向从函数返回的结构的指针。

比如你可以在程序中写

SomeStructure s = kkData

注意指令中的分号要去掉。在这种情况下程序中的代码

SomeStructure s = kkData;

会更清楚

与所有 #define 指令一样,kkData 只是一个标记,将在编译前被 (*SomeFunc()) 替换。它绝不是一个函数指针,只是一个宏,用于从 SomeFunc() 获取结果并在一个单词中取消引用它。