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)
足够?
答案 0 :(得分:5)
最后void
表示函数中没有preamble
指向的参数。
void (*preamble)
还不够,因为这只是一个指向void的指针,而void (*preamble)(void)
是一个函数指针。
答案 1 :(得分:5)
这意味着您声明一个没有参数的函数指针。它并不复杂。它类似于:
int main(void)
和
int main()
两者都是一样的。但是请注意,如评论中所讨论的,如果声明一个没有void关键字的函数指针,只有空括号,它指定一个带有未定义参数的函数指针。