typedef перед объявлением функции

Наткнуля на объявление такой функции, не понимаю для чего перед ее объявлением typedef

typedef bool list_less_func (const struct list_elem *a,    
                             const struct list_elem *b,    
                             void *aux);    

Ответы (1 шт):

Автор решения: user7860670

Это не объявление функции, это объявление алиаса для типа функции. Затем он может быть использован например для объявления указателя на функцию с такой сигнатурой:

list_less_func * p_fun;

Или для предварительного объявления функции (это полезно, когда нужно объявить сразу много функций с одинаковыми сигнатурами):

list_less_func fun_impl;

// определение должно использовать нормальный синтаксис
bool fun_impl(const struct list_elem *a,    
      const struct list_elem *b,    
      void *aux)
{
}
→ Ссылка