Стандартного имени типа для указателей функций не существует, как и для int
. Кроме того, нет ключевого слова для именования тегов для них, как для struct
. Вместо этого вы должны использовать typedef
, если хотите сослаться на прототип функции или указатель на функцию по имени.
Рассмотрим следующее typedef
:
typedef void Frob (void);
Без ключевого слова typedef
объявление будет для прототипа функции с именем Frob
. С typedef
имя Frob
теперь является псевдонимом типа для функций, соответствующих этому прототипу. Итак, его можно использовать так:
Frob foo;
Frob *fubar = foo;
void foo (void) { puts(__func__); }
int main (void) { fubar(); }
Как правило, typedef
работает таким образом, когда он может превратить объявление переменной (sans initializer) в псевдоним типа.