我有两个函数定义
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 * 类型不兼容” 我可以从错误中了解到两个参数不匹配。但是谁能告诉我如何传递这个函数指针?
最佳答案
USART_Puts
需要有一个函数指针类型的参数。
void USART_puts(USART_TypeDef* USARTx, void (*s)(char,unsigned char*,unsigned char))
将send_packet
定义为函数后定义为指针是不必要的。两个这样的同名声明甚至不应该共存。
关于c - 如何将函数指针作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27221225/