指向函数的指针,返回函数指针

克里斯蒂安·劳

我想声明一个指向函数的指针类型的变量,返回指向函数的指针本质上,以下命令可以执行以下操作,但不包含任何typedefs:

typedef void (*func)();
typedef func (*funky_func)();

funky_func ptr;

我尝试了以下

(void (*)()) (*ptr)();

但它给出了“未声明的标识符”错误- ptr(可能是由于完全不同的解析)。我对解析C ++的复杂性并不了解,所以我想知道这是否可能,如果可以,怎么做。

(出于好奇,请出于好奇而将其视为完全人为的情况,没有任何实际原因。我完全意识到,实际上typedef,如果完全使用函数指针,则s是通向此处的方法。)

Angew不再为SO感到骄傲

C(和C ++)声明的一般规则是:如果将声明键入为表达式,它将具有声明的类型。

因此,您需要一个指向函数的指针,该指针返回指向返回void的函数的指针。

假设我们有一个指针,ptr如何void摆脱呢?

  1. 解除引用ptr,获取返回函数的指针,该指针指向返回void的函数:*ptr

  2. 调用函数,获取指向返回void的函数的指针: (*ptr)()

  3. 解引用该指针,使函数返回void: *(*ptr)()

  4. 调用该函数,使其无效: (*(*ptr)())()

现在,将其转换为声明:

void (*(*ptr)())();

PS:我知道其他人在此期间已回答(并且我已投票赞成)。但是我想展示到达申报表的一般过程。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指向函数的指针,返回函数指针

来自分类Dev

返回函数指针类型

来自分类Dev

返回函数指针数组

来自分类Dev

返回函数指针语法的函数

来自分类Dev

从类成员函数返回函数指针

来自分类Dev

指向函数的函数指针,返回指向所述函数类型的指针

来自分类Dev

接收和返回函数指针的函数指针的类型?

来自分类Dev

成员函数返回指向成员函数的指针

来自分类Dev

C:指向返回枚举的函数的函数指针

来自分类Dev

C ++ 11中的函数返回函数指针

来自分类Dev

指向函数指针数组的指针

来自分类Dev

返回指向类成员函数的指针

来自分类Dev

C函数返回指向结构的指针

来自分类Dev

从C ++中的函数返回指向数组的指针?

来自分类Dev

如何从函数返回指向结构的指针?

来自分类Dev

函数返回指向字符串的指针

来自分类Dev

c ++从函数返回指向结构的指针

来自分类Dev

从C ++中的函数返回指向数组的指针?

来自分类Dev

如何从函数返回指向数组的指针?

来自分类Dev

为什么在函数指针或返回函数指针的函数之前放几十个*?

来自分类Dev

指向成员函数的指针

来自分类Dev

指向空函数的指针

来自分类Dev

指向void函数的指针

来自分类Dev

发送指向函数的指针

来自分类Dev

指向成员函数的指针

来自分类Dev

指向函数转换的指针

来自分类Dev

如何编写不使用typedefs即可返回函数指针的函数指针?

来自分类Dev

指向成员函数的函数指针

来自分类Dev

指向成员函数的函数指针