Хранение указателя на функцию обратного вызова с аргументами в c - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь сохранить ссылку (я думаю, что это так) на обратный вызов для локального использования позже.Код, который я пробовал, показан ниже.

void (Port4Task)(uint8_t);   // user function
void BumpInt_Init(void(*task)(uint8_t)){
  Port4Task = task();

К сожалению, когда я пытаюсь это сделать, я получаю сообщение об ошибке «выражение должно быть изменяемым lvalue» и «слишком мало аргументов в вызове функции».Я также пытался,

uint8_t value;
void (Port4Task)(uint8_t);   // user function
void BumpInt_Init(void(*task)(uint8_t)){
  Port4Task = task(value);

Но я все еще получаю ошибку "выражение должно быть изменяемым lvalue".Если есть какие-либо предложения, объяснения или разъяснения относительно того, что я должен делать, что я делаю неправильно или как я могу делать что-то лучше, я был бы очень признателен за сообщение от сообщества.

Спасибо, Kas

Я также пытался

void (Port4Task)();   // user function
void BumpInt_Init(void(*task)(uint8_t)){
Port4Task = task;

И

void (Port4Task)(uint8_t);   // user function
void BumpInt_Init(void(*task)(uint8_t)){
Port4Task = task;

Используя это, я все еще получаю ошибку lvalue, упомянутую выше.Это была моя первая попытка.

...