Как вы передаете функцию в качестве параметра в C?
На этот вопрос уже есть ответ pointers для определения указателей functions функций, однако они могут parameters быть очень запутанными, особенно functions если вы собираетесь передавать def их по всему приложению. Чтобы ptr избежать этой неприятности, я parameter бы порекомендовал вам преобразовать c указатель функции в нечто parameter более читабельное. Например.
typedef void (*functiontype)();
Объявляет def функцию, которая возвращает parameter void и не принимает аргументов. Чтобы params создать указатель на функцию functions этого типа, вы можете сделать ptr следующее:
void dosomething() { }
functiontype func = &dosomething;
func();
Для функции, которая c возвращает int и принимает def char, вы бы сделали
typedef int (*functiontype2)(char);
и использовать param его
int dosomethingwithchar(char a) { return 1; }
functiontype2 func2 = &dosomethingwithchar
int result = func2('a');
Существуют библиотеки, которые params могут помочь превратить указатели function функций в удобные для чтения syntax типы. Библиотека boost function великолепна syntax и стоит затраченных усилий!
boost::function functiontype2;
намного def приятнее, чем выше.
c
function
pointers
syntax
parameters
Как вы передаете функцию в качестве параметра в C?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.