2017-09-15 692 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的函数中,并且我应用了你的解决方法,出现错误 –

相关问题