我正在研究Weston Project 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“吗?这些逗号是怎么回事?
发布于 2018-03-02 00:42:33
您可以将其分解以了解它:
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
};这就是常量结构的实际含义。
https://stackoverflow.com/questions/49054437
复制相似问题