gpt4 book ai didi

c - 接口(interface)绑定(bind)

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:23 25 4
gpt4 key购买 nike

我正在研究 Weston 项目 [1] 中一个名为“hmi-controller”的共享库。它具有以下代码片段,目前令我感到困惑:

/**
* binding ivi-hmi-controller implementation
*/
static const struct ivi_hmi_controller_interface ivi_hmi_controller_implementation = {
ivi_hmi_controller_UI_ready,
ivi_hmi_controller_workspace_control,
ivi_hmi_controller_switch_mode,
ivi_hmi_controller_home
};

我不明白这是怎么回事。这个定义结构叫做“ivi_hmi_controller_interface”吗?这些逗号是怎么回事?

[1] https://github.com/wayland-project/weston/blob/2.0/ivi-shell/hmi-controller.c

最佳答案

你可以分解它来理解它:

static const struct ivi_hmi_controller_interface

这部分声明了一个static const 常量。根据它在源代码中的位置,它也是一个全局常量。在 C 语言中,您需要在使用它时为定义的任何结构标识符添加一个 struct。所以它后面的标识符是 struct ivi_hmi_controller_interface

类型
ivi_hmi_controller_implementation = { ....

您在这里定义一个标识符。之后,您可以通过该名称引用该全局常量。

... = {
ivi_hmi_controller_UI_ready,
ivi_hmi_controller_workspace_control,
ivi_hmi_controller_switch_mode,
ivi_hmi_controller_home
};

这就是常量结构的实际含义。

关于c - 接口(interface)绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49054437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com