Основы программирования на языке Си. Кучин Н.В - 66 стр.

UptoLike

Составители: 

66
y=ff(cos,z); /* другой вызов с использованием стандартной
функции*/
printf(“z=%f y=%f\n”,z,y);
y=ff(ptrf,z); /* то же через указатель на функцию*/
printf(“z=%f y=%f\n”,z,y);
}
double f(double x)
{
puts(“ In f()”);
return x;
}
double f1(double x)
{
puts(“ In f1()”);
return x*x;
}
double f2(double x)
{
puts(“ In f2()”);
return x*x*x;
}
double ff(double (*pf)(double x), double x)
/* Функция с указателем на функцию в качестве параметра*/
{
puts(“ In ff() %f\n”,pf(x));
return pf(x);
}
При использовании указателей на функции можно образовывать мас-
сивы указателей. Такая структура данных называется jump table.
Если определены объявления
int f0(void);
int f1(void);
int f2(void);
int f3(void);
int(*jtable[](void)=(f0,f1,f2,f4);
Соответствующую функцию можно вызвать
val = (*jtable[i])(); или val = jtable[i]();