如何将函数指针作为参数传递?

时间:2014-12-01 03:21:28

标签: c pointers

我有两个功能定义

void USART_puts(USART_TypeDef* USARTx, volatile char *s)
{
 .....
}


void send_packet(char op, unsigned char *data, unsigned char len) 
{
....
}

现在我已经为send_packet(char,unsigned char *,unsigned char)创建了一个函数指针

void (*send_packet)(char,unsigned char*,unsigned char);

我想像这样传递这个函数指针

 USART_Puts(USART1,send_packet)    

但我收到错误" send_packet *类型的参数与volatile char *"类型不兼容 我可以从错误中理解两个参数不匹配。但有人可以告诉我如何传递这个函数指针?

1 个答案:

答案 0 :(得分:1)

USART_Puts需要有一个函数指针类型的参数。

void USART_puts(USART_TypeDef* USARTx, void (*s)(char,unsigned char*,unsigned char))

send_packet定义为函数定义后的指针是不必要的。两个同名的声明甚至不应该共存。