"Type lvalue required as left operand of assignment" 分配函数指针时出错(不是 == 问题!)
"Type lvalue required as left operand of assignment" error when assigning function pointer (not == issue!)
我正在开发一个涉及使用函数指针的函数回调的嵌入式 C 项目。我清除了所有代码并创建了一个简单的示例,该示例会产生相关错误。我已经盯着这个看了一个多小时了,但仍然看不出我做错了什么。非常感谢任何帮助!
/* Callback function pointer type for ADC Sample Interrupt */
typedef void (*ADC_Callback_Func)(uint16_t);
/* ADC Timer interrupt callback function pointer */
ADC_Callback_Func ADC_CallbackFunction(uint16_t sample);
/* ADC Callback function */
void ADC_SampleReceived(uint16_t sample);
///////////////////////////////////////////////////////////////////////
int main(void)
{
/* Initialize ADC Timer */
ADC_CallbackFunction = &ADC_SampleReceived; //<-- Code Bombs here
/* Infinite loop */
while (1) {
}
}
void ADC_SampleReceived(uint16_t sample)
{
}
同样,我在编译后收到的错误是:
"Type lvalue required as left operand of assignment"
在此代码中 ADC_CallbackFunction
不是函数指针。它是一个接受 uint16_t
和 returns 函数指针的函数。
我正在开发一个涉及使用函数指针的函数回调的嵌入式 C 项目。我清除了所有代码并创建了一个简单的示例,该示例会产生相关错误。我已经盯着这个看了一个多小时了,但仍然看不出我做错了什么。非常感谢任何帮助!
/* Callback function pointer type for ADC Sample Interrupt */
typedef void (*ADC_Callback_Func)(uint16_t);
/* ADC Timer interrupt callback function pointer */
ADC_Callback_Func ADC_CallbackFunction(uint16_t sample);
/* ADC Callback function */
void ADC_SampleReceived(uint16_t sample);
///////////////////////////////////////////////////////////////////////
int main(void)
{
/* Initialize ADC Timer */
ADC_CallbackFunction = &ADC_SampleReceived; //<-- Code Bombs here
/* Infinite loop */
while (1) {
}
}
void ADC_SampleReceived(uint16_t sample)
{
}
同样,我在编译后收到的错误是:
"Type lvalue required as left operand of assignment"
在此代码中 ADC_CallbackFunction
不是函数指针。它是一个接受 uint16_t
和 returns 函数指针的函数。