Подтвердить что ты не робот

Вставить в функцию указатель?

Нашли строку, показанную ниже Я думаю, что это может быть приведение к указателю функции, который возвращает void и принимает указатель на void, верно ли это?

(void (*)(void *))SGENT_1_calc
4b9b3361

Ответ 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