В вашей структуре CilkProcInfo
, inlet
- это указатель на функцию, которая принимает неопределенное количество аргументов и не возвращает значение, например void foo();
.
В строке
(get_proc_slow(f->sig)) (ws, f);
вызов get_proc_slow(f->sig)
возвращает указатель на эту функцию, поэтому он эквивалентен
(f->sig[0].inlet) (ws, f);
Так что, если ваш f->sig[0].inlet
указывает на функцию foo()
, это эквивалентно вызову
foo (ws, f);
Должен признать, что синтаксис static void (*get_proc_slow(CilkProcInfo *p)) () {...
мне немного незнаком.