The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

A.7 Указатели на функции

A.7 Указатели на функции

Предыдущая  Содержание  Следующая V*D*V

Декларация указателя на функцию состоит из объявления функции путём добавления одного уровня косвенности, то есть оператора *, к имени функции. Скобки используются для контроля приоритета:

 

void * f (void *);                функция

void * (* fp) (void *) = f;       указатель на функцию

 

Эти указатели обычно инициализируется с помощью имён функций, которые были задекларированы ранее. В вызовах функций имена функций и указатели используются одинаково:

 

int x;

 

  f (& x);                        использование имени функции

  fp (& x);                       использование указателя, ANSI-C

  (* fp)(& x);                    использование указателя, классика

 

Указатель на функцию может быть компонентом  структуры:

 

struct Class { ...

    void * (* ctor) (void * self, va_list * app);

... } * cp, ** cpp;

 

В вызове функции -> имеет приоритет перед вызовом функции, но это не имеет приоритета над разыменовкой с помощью *, то есть во втором примере необходимы круглые скобки:

 

cp -> ctor ( ... );

(* cpp) -> ctor ( ... );

 

Предыдущая  Содержание  Следующая