Typedef函数指针有替代语法吗?

安奇

为了对函数指针进行typedef,我们要做类似的事情,

typedef int (*func) (char*);
typedef struct{
  char * name;
  func f1; 
}

与此相对,我遇到了我不理解的代码。

typedef int rl_icpfunc_t (char *);
typedef struct {
   char *name;         /* User printable name of the function. */
   rl_icpfunc_t *func; /* Function to call to do the job. */
   char *doc;          /* Documentation for this function.  */
}COMMAND;

这是libedit库示例的代码段。有人可以向我解释一下吗?

ALK
typedef int rl_icpfunc_t (char *);

正在将函数原型定义为类型。

rl_icpfunc_t * func; 

定义func为指向前者的指针。

这与直接通过以下方式定义函数指针类型相反:

typedef int (*prl_icpfunc_t) (char *);
prl_icpfunc_t func;

这两个方法的结果是相同的:func指向函数的指针,该函数返回int并接受一个参数,即a char*

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章