c++ - C+ + - 参数类型'void'不完整

我试图编写这个简单的代码,我希望能够更改set_current的值。错误消息: " Argument type'void'is incomplete "不断出现,我不确定为什么。

我不是一个经验丰富的程序员,但是,我必须解决这个问题,希望你能帮我。


void setCurrent(float set_current);



int main () { 


 printf("%i", setCurrent(0));


 printf("/n/r");


}



void setCurrent(float set_current){


 float v_set_cur = 1.25 + (ILIM_K_USE*set_current);



时间:

你已经声明setCurrent为返回void (即,什么都没有),但是在printf("%i", setCurrent(0));中,你期望它返回一个int ,其中一个需要改变。

函数setCurrent需要返回一个可以打印的值,换句话说,函数定义不是void

我猜你想要的是:


float setCurrent(float set_current); // Notice float instead of void



int main () { 


 printf("%f", setCurrent(0)); // Notice %f instead of %i


 printf("/n/r");


}



float setCurrent(float set_current){ // Notice float instead of void


 float v_set_cur = 1.25 + (ILIM_K_USE*set_current); // Calculate value


 return v_set_cur ; // Return the value


}



调用setCurrent时,不会返回任何内容,void函数本身并不返回值,根据printf语句,调用setCurrent需要一个整数,看来你想要返回一个float,因为v_set_curr是一个浮点数。


float setCurrent(float set_current);



int main () { 


 printf("%f", setCurrent(0));


 printf("/n/r");


}



float setCurrent(float set_current){


 float v_set_cur = 1.25 + (ILIM_K_USE*set_current);


 return v_set_cur;


}



void返回类型不返回值; 所以,在setCurrent函数中应该执行打印操作。
尝试这个代码


void setCurrent(float set_current);



int main () { 


 setCurrent(0);


 printf("/n/r");


}



void setCurrent(float set_current){


 float v_set_cur = 1.25 + (ILIM_K_USE*set_current);


 printf("%.2f", v_set_cur);


} 



...