typedef long SetStringPtr(char *) 是函数指针的定义吗?

发布于 2022-10-15 10:19:56 字数 932 浏览 80 评论 0

有一段代码如下,请问大家其中" typedef long SetStringPtr(char *)"是函数指针定义吗?可是我在基础知识中了解函数指针好像不是这样定义的.按照规则应该是:typedef long (*SetStringPtr)(char *)

  1.     long SetString(char *str)
  2.     {
  3.      return (0);
  4.     }
  5.     long GetString(char *buffer, long length)
  6.     {
  7.      return (0);
  8.     }
  9.     typedef long SetStringPtr(char *);
  10.     typedef long GetStringPtr(char *, long);
  11.    
  12.     typedef struct {
  13.      SetStringPtr *SetString;
  14.      GetStringPtr *GetString;
  15.      DWORD count;
  16.      char buffer[80];
  17.     } IExample;

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

唐婉 2022-10-22 10:19:56

定义的是函数类型,不是函数指针类型.

如果是像你说的那个定义,那么下面SetStringPtr *SetString就要变成SetStringPtr SetString

征棹 2022-10-22 10:19:56

那这个定义应该叫什么?
比较难理解

清音悠歌 2022-10-22 10:19:56

typedef int INT;和typedef int* INT_P;的区别能理解吧,其实是一样的.那么在定义一个int *指针的时候,两个的写法分别是: INT *P/和INT_P p;

心欲静而疯不止 2022-10-22 10:19:56

你说的这个能理解,但是理解上面的例子就比较吃力!

入怼 2022-10-22 10:19:56

函數也是一個類型

淡淡的优雅 2022-10-22 10:19:56
  1. typedef long SetStringPtr(char *);
  2. long SetString(char *)
  3. {
  4. return 0;
  5. }
  6. SetStringPtr* t = SetString;
濫情▎り 2022-10-22 10:19:56

谢谢大家都回复,慢慢学会理解!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文