typedef long SetStringPtr(char *) 是函数指针的定义吗?
有一段代码如下,请问大家其中" typedef long SetStringPtr(char *)"是函数指针定义吗?可是我在基础知识中了解函数指针好像不是这样定义的.按照规则应该是:typedef long (*SetStringPtr)(char *)
- long SetString(char *str)
- {
- return (0);
- }
- long GetString(char *buffer, long length)
- {
- return (0);
- }
- typedef long SetStringPtr(char *);
- typedef long GetStringPtr(char *, long);
- typedef struct {
- SetStringPtr *SetString;
- GetStringPtr *GetString;
- DWORD count;
- char buffer[80];
- } IExample;
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
定义的是函数类型,不是函数指针类型.
如果是像你说的那个定义,那么下面SetStringPtr *SetString就要变成SetStringPtr SetString
那这个定义应该叫什么?
比较难理解
typedef int INT;和typedef int* INT_P;的区别能理解吧,其实是一样的.那么在定义一个int *指针的时候,两个的写法分别是: INT *P/和INT_P p;
你说的这个能理解,但是理解上面的例子就比较吃力!
函數也是一個類型
谢谢大家都回复,慢慢学会理解!