Рассмотрим следующие typedefs:
typedef int (*f1)(float);
typedef f1 (*f2)(double);
typedef f2 (*f3)(int);
f2 - это функция, которая возвращает указатель на функцию. То же самое с f3, но тип функции, указатель на который f3 возвращает, равен f2. Как определить f3 без typedefs? Я знаю, что typedefs являются более понятным и понятным способом определения f3. Однако мое намерение здесь состоит в том, чтобы лучше понять синтаксис Си.