C 无效(*foo)(无效):最新(无效)的含义

C 无效(*foo)(无效):最新(无效)的含义,c,void,C,Void,B.A.T.M.A.N./A.L.F.R.E.D。OpenMesh项目: 实例化指向已定义类型的指针 struct vis_print_ops { void (*preamble)(void); void (*interfaces)(uint8_t iface_n, struct vis_iface *ifaces); void (*entries)(uint8_t entries_n, struct vis_entry *vis_entries,

B.A.T.M.A.N./A.L.F.R.E.D。OpenMesh项目:

实例化指向已定义类型的指针

struct vis_print_ops
{
    void (*preamble)(void);
    void (*interfaces)(uint8_t iface_n, struct vis_iface *ifaces);
    void (*entries)(uint8_t entries_n, struct vis_entry *vis_entries,
            uint8_t iface_n, struct vis_iface *ifaces);
    void (*postamble)(void);
};
现在看看

void (*preamble)(void)
你能告诉我最后一个(空)是什么意思吗?不是吗


够了吗?

最后一个
void
表示函数中没有由
前导所指向的参数


void(*preamble)
是不够的,因为这只是一个指向void的指针,而
void(*preamble)(void)
是一个函数指针。

这意味着声明一个没有参数的函数指针。没有比这更复杂的了。这类似于:
int main(无效)
int main()


两者都是一样的。注意,如注释中所述,如果您声明的函数指针没有void关键字且只有空括号,则它指定的函数指针具有未定义的参数。

这基本上意味着它是一个没有参数的函数指针。
void(*preamble)(
可以吗?@caterpiller,不,这不一样。这意味着
序言
包含一些未定义的参数。@正确,我编辑了我的答案。谢谢
void (*preamble)