接口绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口绑定相关的知识,希望对你有一定的参考价值。

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

/**
 * 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
};

这就是你的常量结构实际意味着什么。

以上是关于接口绑定的主要内容,如果未能解决你的问题,请参考以下文章

实用代码片段将json数据绑定到html元素 (转)

Kotlin Android Studio - setContenView - 绑定(片段)

使用绑定从片段访问父活动的 UI 元素

在约束布局中查看片段的绑定不起作用

如何组合绑定片段而不将它们包装在 XML 文字中

从父片段到选项卡片段的接口侦听器不起作用