我有两个功能定义
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 *"类型不兼容 我可以从错误中理解两个参数不匹配。但有人可以告诉我如何传递这个函数指针?
答案 0 :(得分:1)
USART_Puts
需要有一个函数指针类型的参数。
void USART_puts(USART_TypeDef* USARTx, void (*s)(char,unsigned char*,unsigned char))
将send_packet
定义为函数定义后的指针是不必要的。两个同名的声明甚至不应该共存。