#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()
获取结果并在一个单词中取消引用它。
请看下面的代码:
SomeStructure* SomeFunc();
#define kkData (*SomeFunc())
问题:kkData
代表什么?
编辑:从第二行删除了分号。
这个指令
#define kkData (*SomeFunc());
表示调用函数 SomeFunc
并取消引用指向从函数返回的结构的指针。
比如你可以在程序中写
SomeStructure s = kkData
注意指令中的分号要去掉。在这种情况下程序中的代码
SomeStructure s = kkData;
会更清楚
与所有 #define
指令一样,kkData
只是一个标记,将在编译前被 (*SomeFunc())
替换。它绝不是一个函数指针,只是一个宏,用于从 SomeFunc()
获取结果并在一个单词中取消引用它。