Я использую массив указателей на функции, как показано ниже, чтобы избежать использования оператора switch
в коде.
void E_func1(void);
void E_func2(void);
void E_func3(void);
void (*pfGetVal[3])() = {
E_func1,
E_func2,
E_func3
};
Но при запуске misra (pclint) я получаю следующую ошибку:
преобразование между указателем на функцию и другим типом [MISRA 2012 Правило 11.1, обязательно]
Мне нужно использовать typedef
?
Я пробовал, как показано ниже, но не работал.
void (*pfGetVal[3])();
pfGetVal[0] = E_func1;
pfGetVal[1] = E_func2;
pfGetVal[2] = E_func3;