Составители:
Рубрика:
65
5.7. Указатель на функцию
На функцию, как и на другие объекты языка С можно создать указа-
тель. Указатель pfunc на функцию, на функцию возвращающую значе-
ние типа type и имеющую параметры типа type1, type2, объявляется
следующим образом:
type (*pfunc)(type1 t1,type2 t2);
По определению указатель на функцию содержит адрес первого бай-
та или слова выполняемого кода функции. Над указателями на функ-
цию запрещены арифметические операции. Использование указателя
на функцию имеет несколько применений, в частности он использует-
ся, если необходимо передать функцию как параметр другой функции.
Рассмотрим пример использования указателя на функцию:
# include < stdio.h >
# include < math.h >
/* Пример 44 */
double f(double x);
double f1(double x);
double f2(double x);
double ff(double (*pf)(double x), double x); /* указатель на функ-
цию в качестве аргумента*/
void main(void)
{
double z=2.3, y;
double (*ptrf)(double x); /* указатель на функцию */
ptrf=f; /* инициализация указателя */
y=(*ptrf)(z); /* вызов функции через указатель – 1-й способ*/
printf(“z=%f y=%f\n”,z,y);
y=ptrf(z); /* вызов функции через указатель – 2-й способ*/
printf(“z=%f y=%f\n”,z,y);
ptrf=sin; /* использование стандартной функции*/
y=ptrf(z);
printf(“z=%f sin(z)=%f\n”,z,y);
y=(*ptrf)(4.6) /* можно таким образом */
printf(“z=%f y=%f\n”,z,y);
y=ff(f1,z); /* вызов ff с параметром f1*/
printf(“z=%f y=%f\n”,z,y);
Страницы
- « первая
- ‹ предыдущая
- …
- 63
- 64
- 65
- 66
- 67
- …
- следующая ›
- последняя »
