Как вы передаете функцию в качестве параметра в 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
Как вы передаете функцию в качестве параметра в C?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.