Как использовать указатель функции для возврата указателя функции?

Я изучал обработку сигналов в Unix и наткнулся на это

void (*signal(int sig, void (*func)(int)))(int);

Я не понимаю этот прототип и то, как он возвращает указатель на функцию.

Я также прочитал этот ответ: Как работают указатели функций в C? но мне непонятно.

Предполагается, что он возвращает указатель на функцию, но я не понимаю, где он указывает тип возвращаемого значения в качестве другого указателя на функцию. указатель на функцию. Правильно ли это?
Есть ли для этого более простой пример?

Также: объяснение cdecl   —  person rs911    schedule 12.08.2013

@millimoose Спасибо, это действительно полезно.   —  person rs911    schedule 12.08.2013

Кроме того, возвращаемый тип становится указателем на функцию путем добавления списка параметров после сигнатуры функции. (который уже содержит несвязанный список параметров.) Сравните void (*foo(int))< /a> (то же самое, что void *foo(int), но не void (*foo)(int)) и void (*foo(int))(long). Другими словами: возвращаемый тип функции — это то, что находится вне сигнатуры, а не только слева от нее.   —  person rs911    schedule 12.08.2013

Источник: ledsshop.ru

Стиль жизни - Здоровье!