Types 用于定义另一个结构的typedef结构?

Types 用于定义另一个结构的typedef结构?,types,initialization,embedded,structure,typedef,Types,Initialization,Embedded,Structure,Typedef,我是编码方面的新手,尤其是在嵌入式系统中。我想问一下这个代码是什么意思 typedef struct _Device_cb { USBH_Status (*Init) (USB_OTG_CORE_HANDLE *pdev , USBH_DeviceProp_TypeDef *hdev); void (*DeInit) (USB_OTG_CORE_HANDLE *pdev , USBH_DeviceProp_TypeDef *hdev); USBH_Status (*Requests)(USB_O

我是编码方面的新手,尤其是在嵌入式系统中。我想问一下这个代码是什么意思

typedef struct _Device_cb
{
USBH_Status (*Init) (USB_OTG_CORE_HANDLE *pdev ,
USBH_DeviceProp_TypeDef *hdev);
void (*DeInit) (USB_OTG_CORE_HANDLE *pdev , USBH_DeviceProp_TypeDef
*hdev);
USBH_Status (*Requests)(USB_OTG_CORE_HANDLE *pdev,
USBH_DeviceProp_TypeDef;*hdev);
USBH_Status (*Machine) (USB_OTG_CORE_HANDLE *pdev ,
USBH_DeviceProp_TypeDef,*hdev);
}
USBH_Class_cb_TypeDef;
我知道这是一个结构名称USBH_Class_cb_TypeDef,让我困惑的是,将此结构与另一个结构/数组结合使用的代码。这就是我的意思

USBH_Class_cb_TypeDef USBH_HID_cb =
{
USBH_HID_InterfaceInit,
USBH_HID_InterfaceDeInit,
USBH_HID_ClassRequest,
USBH_HID_Handle
};
前一个USBH_Class_cb_TypeDef结构是否用于将类型分配给下一个名为USBH_HID_cb的结构/数组中的条目

这是否就像说例如u8 USBH_HID_InterfaceInit一样将特定类型分配给变量

另外,用括号括起来的指针有点让我困惑,特别是因为函数中使用的另一个thingor变量在它后面


顺便说一句,我从有关USB OTG的文档中阅读了这些代码,因为我想将STM32F4Discovery配置为USB摄像头的USB主机

第二个代码片段不是另一个结构,而是USBH_Class_cb_TypeDef实例的声明,带有一个初始化器

USBH_Class_cb_TypeDef是一个类型,而USBH_HID_cb是一个USBH_Class_cb_TypeDef类型的变量。USBH_HID_cb的前四个成员恰好是函数指针,由函数初始化:

USBH_HID_InterfaceInit,
USBH_HID_InterfaceDeInit,
USBH_HID_ClassRequest,
USBH_HID_Handle
为了更好地了解正在发生的事情,考虑下面的更简单的例子:

typedef struct
{
    int x ;
} tMyStruct ;

tMystruct a = { 0 } ;  // create instance tMystruct with member x = 0 ;

您需要了解结构初始值设定项和函数指针。ohhh。我刚刚意识到一些事情!谢谢你,很抱歉问了这个愚蠢的问题。:/我发现混淆的是函数指针。好吧,我得读一读。再次感谢!