2017-09-15 223 views
-4

我有一個函數void readline(),它輸出一個字符串,我想將它作爲一個函數傳遞給另一個函數參數,我該怎麼做,如何將void函數(void)作爲參數傳遞給另一個函數c

感謝您的任何幫助。

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

你需要表現出更多的代碼,你的問題不清楚,因爲它站在這裏。或者你可能需要閱讀你的C文本書。 –

+1

你是說readline會給你輸出字符串,你想傳遞給另一個函數,那個readline函數的返回類型應該是「string」 –

+0

也許你想[GNU readline](http://cnswww.cns.cwru。 edu/php/chet/readline/rltop.html)但它不會返回一個'void' –

回答

4

您可以使用該參數的任何名稱將該參數聲明爲函數聲明。例如

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); 
+0

我對堆棧溢出非常陌生,我怎樣才能把我的代碼放在這裏,以便你們可以看到它? –

+0

@胡云飛我的答案不清楚還是你還有一個問題? –

+0

我想將readline func傳入一個已經通過參數argc和argv的函數中,並且我應用了你的解決方法,出現錯誤 –

相關問題