Возможный дубликат:
в чем смысл этой части кода? void (* signal (int sig, void (* func) (int))) (int);
У меня есть сложное объявление, которое было взято из заголовочного файла signal.h, а ниже - объявление.
void (*signal(int sig, void (*func)(int)))(int);
Теперь, как его разобрать? Как
сигнал - это функция, использующая два аргумента sig типа int и 'func, который является указателем на функцию, принимающую int в качестве аргумента и возвращающую тип void; он возвращает указатель на функцию, принимающую int как аргумент и возвращающую void.
Это нормально, или сигнал является указателем на функцию?