Как передать функцию void (void) в другую функцию в качестве параметра в c

[введите описание изображения здесь][1] У меня есть функция void readline() который выводит строку, и я хочу передать ее в другую функцию в качестве параметра, как я могу это сделать,

Спасибо за любую помощь.

int scorecount(argc1, argv1, void readline());
void readline();


int main(int argc, char *argv[]){
    scorecount(argc,argv);
}


int scorecount(argc1, argv1, void readline()){

    output a int
    and I want to use the string from readline function somewhere in
    scorecount

}


void readline(){

    output a string

}

1 ответ

Вы можете объявить параметр как объявление функции, используя любое имя параметра. Например

void another_function( void readline( void ) ); 

И функция another_function можно назвать как

another_function( readline );

Компилятор корректирует объявление функции, чтобы указатель на функцию. Таким образом, приведенная выше декларация эквивалентна

void another_function( void ( *readline )( void ) ); 

РЕДАКТИРОВАТЬ: после того, как вы обновили свой код, функция должна быть объявлена ​​как

int scorecount( int argc, char * argv[], void readline( void ) );
void readline( void );

и называется как

scorecount( argc, argv, readline );
Другие вопросы по тегам