Tag: wayland

结构类型本身可以作为c中的参数传递吗?

在研究wayland协议时,我发现函数将struct type作为参数。 #include static struct wl_compositor_interface compositor_interface = {&compositor_create_surface, &compositor_create_region}; int main() { wl_global_create (display, &wl_compositor_interface, 3, NULL, &compositor_bind); } wl_global_create的签名是 struct wl_global* wl_global_create (struct wl_display *display, const struct wl_interface *interface, int version, void *data, wl_global_bind_func_t bind) wl_compositor_interface是结构类型,而不是变量名。 但是wl_global_create()将结构类型作为函数参数。 谁能解释一下这是如何工作的? 我读到的源代码就在这里。 https://github.com/eyelash/tutorials/blob/master/wayland-compositor/wayland-compositor.c