2017-09-15 5 views
-4

[Bild Beschreibung hier eingeben] [1] Ich habe eine Funktion void readline(), die eine Zeichenfolge ausgeben, und ich möchte sie in eine andere Funktion als übergeben Parameter, wie kann ich das tun,Wie man eine void Funktion (void) an eine andere Funktion als Parameter übergibt c

Danke für jede Hilfe.

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

Sie müssen genannt deklariert werden mehr Code zu erhalten Deine Frage ist unklar, wie sie hier steht. Oder Sie müssen möglicherweise Ihr C-Lehrbuch lesen. –

+1

Sie sagen, dass readline geben Sie die Ausgabezeichenfolge und Sie möchten es in eine andere Funktion übergeben, dass die Readline-Funktion Rückgabetyp sollte "string" –

+0

Vielleicht möchten Sie [GNU readline] (http: //cnswww.cns.cwru. edu/php/chet/readline/rltop.html), aber es gibt kein "void" zurück –

Antwort

4

Sie können den Parameter als Funktionsdeklaration unter Verwendung eines beliebigen Namens des Parameters deklarieren. Zum Beispiel

void another_function(void readline(void)); 

und die Funktion another_function kann wie

another_function(readline); 

Der Compiler die Funktionsdeklaration auf die Funktion auf Zeiger justiert aufgerufen werden. So dass die obige Erklärung entspricht

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

EDIT: Nachdem Sie Ihren Code aktualisiert dann sollte die Funktion wie

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

und wie

scorecount(argc, argv, readline); 
+0

Ich bin sehr neu zu Stack Überlauf, wie kann ich meinen Code hier, damit Sie es sehen können? –

+0

@HuYunfei Ist meine Antwort unklar oder hast du noch ein Problem? –

+0

Ich möchte readline func in eine Funktion übergeben, die bereits argc und argv im Parameter übergeben hat, und ich habe Ihre Lösung angewendet, Fehler erscheint –

Verwandte Themen