根据错误信息来看,试图将一个返回 uint8_t
的函数指针赋值给一个 uint8_t
类型的变量,又或者是uint16_t,uint32_t......。这在C语言中是不允许的,因为函数指针和变量是不同的数据类型。以下是一个可能的示例代码段:
uint8_t myFunction(void) {
return 42;
}
void main() {
uint8_t variable;
variable = myFunction; // 错误:不能将函数指针赋值给变量
}
正确的做法是调用该函数并将返回值赋给变量,而不是直接赋值函数指针。修改后的代码如下:
uint8_t myFunction(void) {
return 42;
}
void main() {
uint8_t variable;
variable = myFunction(); // 正确:调用函数并将返回值赋给变量
}
注意上面两图的区别,muFunctionmyFunction()
仔细看看你的代码中是否将 函数指针直接赋值给变量,你没有调用函数所以无返回值也就无法赋值,所以会出错。