FDA (17.08.2015 16:03, просмотров: 312) ответил Евгений на И, опять же, повторюсь, нет сбоя вызова, есть отказ компилятора воспринимать строчку с косвенным вызовом функции по указателю.
Я вот накидал такую программку:
#include <xc.h>
typedef struct
{
char MyVar;
void (*F1)(char);
void (*F2)(char);
} TFuncStruct;
void MyF1(char a);
void MyF2(char b);
TFuncStruct FS = {2, MyF1, MyF2};
char GlobalVar = 0;
void MyF1(char a)
{
GlobalVar = a;
}
void MyF2(char b)
{
GlobalVar = b;
}
void main(void)
{
FS.F1(5);
if (GlobalVar == 5)
{
NOP();
}
}
Там два указателя на функции для одной структуры.
Вроде всё работает. Проверь у себя. У меня компилятор XC8 1.35. Версия PRO. Проц PIC18F46K22.