我正在使用函数指针调用包含函数回调的嵌入式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"
我认为你可以使用这篇文章作为一个很好的参考:http://stackoverflow.com/questions/142789/what-is-a-callback-in-c-and-how-are-they-实施 – philm
请仔细检查错误信息。我得到“错误:作为赋值左操作数所需的左值”。 “类型左值”这个短语没有意义。 –