Нашли строку, показанную ниже
Я думаю, что это может быть приведение к указателю функции, который возвращает void и принимает указатель на void, верно ли это?
(void (*)(void *))SGENT_1_calc
Ответ 1
Да, это правильно. Я считаю, что это не очень читаемо, поэтому я предлагаю объявить подпись функции:
typedef void sigrout_t(void*);
У меня также есть соглашение о кодировании, которое типы, заканчивающиеся на rout_t, являются такими типами для сигнатур функций. Вы могли бы назвать это иначе, так как _t является суффиксом reserved по Posix
последний, я качаю, возможно, называть его
((sigrout_t*) SGENT_1_calc) (someptr);
Ответ 2
Да, функция должна выглядеть так:
void func(void*);
Но в заявлении отсутствует цель, так как приведение к нулю бесполезно. Так что это должно быть как
func = (void (*)(void *))SGENT_1_calc;
Ответ 3
Да, это бросок, как вы заявили.
Ответ 4
да его указатель на функцию, который вы можете назначить функции с proto void funcname (void *)
Здесь SGENT_1_calc может быть напрямую назначен funcname