void(* foo)(void):最新的含义(void)

时间:2015-10-19 14:40:01

标签: c void

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

function read_answer实例化指向已定义的类型struct vis_print_ops的指针

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)
你可以告诉我最后一个(无效)是什么意思吗? ISN'吨

void (*preamble)

足够?

2 个答案:

答案 0 :(得分:5)

最后void表示函数中没有preamble指向的参数。

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

答案 1 :(得分:5)

这意味着您声明一个没有参数的函数指针。它并不复杂。它类似于: int main(void)int main()

两者都是一样的。但是请注意,如评论中所讨论的,如果声明一个没有void关键字的函数指针,只有空括号,它指定一个带有未定义参数的函数指针。