如何理解函数指针的调用?
这是函数在程序中的调用,如下:
XCan_SetHandler(&Can, XCAN_HANDLER_SEND,
(void *)SendHandler, (void *)&Can);
有四个参数,&Can,XCAN_HANDLER_SEND,SendHandler,&Can;这个函数的定义是这样的,如下:
int XCan_SetHandler(XCan *InstancePtr, u32 HandlerType,
void *CallBackFunc, void *CallBackRef)
我就是没明白参数SendHandler是如何使用的?SendHandler本身是一个函数,其定义如下: static
void SendHandler(void *CallBackRef)
/* The frame was sent successfully. Notify the task context */
xil_printf("SendHandler\r\n");
}
如果是函数指针作为参数的话,不应该这么写吗:(void *)SendHandler(void *)
即:XCan_SetHandler(&Can, XCAN_HANDLER_SEND,
(void *)SendHandler(void *), (void *)&Can);
有人知道吗,谢谢指点。 |