Все сказали, что это такое, но вы спросили, как это прочитать.
Синтаксис указателя на функцию выглядит следующим образом:
RETURN_VALUE (*POINTER_NAME) (ARGUMENT LIST)
Итак
foo (*bar) (baz)
- указатель на функцию, принимающую baz
и возвращающую foo
, а указатель называется bar
.
В случае, если вы хотите только написать тип указателя на функцию, а не объявить его, вы просто пропускаете имя, например
RETURN_VALUE (*) (ARGUMENT_LIST)
как вы видите здесь.
Для разбора трудных для понимания объявлений C есть хорошая программа под названием cdecl
, доступная в большинстве Linux и Unix-подобных систем, а также в виде веб-приложения: http://cdecl.org/