Как вы передаете функцию в качестве параметра в C?

На этот вопрос уже есть ответ parameter для определения указателей syntax функций, однако они могут function быть очень запутанными, особенно pointers если вы собираетесь передавать syntax их по всему приложению. Чтобы c избежать этой неприятности, я c бы порекомендовал вам преобразовать function указатель функции в нечто function более читабельное. Например.

typedef void (*functiontype)();

Объявляет function функцию, которая возвращает def void и не принимает аргументов. Чтобы param создать указатель на функцию params этого типа, вы можете сделать params следующее:

void dosomething() { }

functiontype func = &dosomething;
func();

Для функции, которая parameter возвращает int и принимает params char, вы бы сделали

typedef int (*functiontype2)(char);

и использовать parameter его

int dosomethingwithchar(char a) { return 1; }

functiontype2 func2 = &dosomethingwithchar
int result = func2('a');

Существуют библиотеки, которые functions могут помочь превратить указатели ptr функций в удобные для чтения parameters типы. Библиотека boost function великолепна c и стоит затраченных усилий!

boost::function functiontype2;

намного c приятнее, чем выше.

c

function

pointers

syntax

parameters

2022-11-09T09:59:07+00:00
Вопросы с похожей тематикой, как у вопроса:

Как вы передаете функцию в качестве параметра в C?