C代码问题请教,结构体怎么能执行呢?

2019-07-21 01:45发布

本帖最后由 EDA3rd 于 2017-8-15 00:19 编辑

结构体怎么能执行呢?

    static USB_ClassInfo_HID_Host_t Keyboard_HID_Interface = {
        .Config = {
            .DataINPipeNumber       = 1,
            .DataINPipeDoubleBank   = false,

            .DataOUTPipeNumber      = 2,
            .DataOUTPipeDoubleBank  = false,

            .HIDInterfaceProtocol   = HID_CSCP_KeyboardBootProtocol,
            .PortNumber = 0,
        },
    };
    static inline void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
    static inline void HID_Host_USBTask(USB_ClassInfo_HID_Host_t* const HIDInterfaceInfo)
    {
        (void)HIDInterfaceInfo;
    }

    int main(void)
    {
        SetupHardware();
        DEBUGOUT("Keyboard Host Demo running. ");

        for (;; ) {
            KeyboardHost_Task();

            HID_Host_USBTask(&Keyboard_HID_Interface);
            USB_USBTask(Keyboard_HID_Interface.Config.PortNumber, USB_MODE_Host);
        }
    }

注意 HID_Host_USBTask(&Keyboard_HID_Interface); 这句代码,传递参数是结构体指针,执行 HID_Host_USBTask 就等于执行  (void) &Keyboard_HID_Interface; 不会跑飞吗?事实上板子运行没出现什么问题


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。