我正在尝试编写此相对简单的代码,在其中我希望能够更改set_current的值。 错误消息:“参数类型'void'不完整”不断显示,我不确定为什么。
我不是经验丰富的编码员,但是我必须解决此问题才能上班。我真的希望你能帮助我。
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);
printf行上显示“参数类型'void'不完整”。当我删除0时,它可以工作,但我希望能够更改该数字。 我在这里想念什么?
答案 0 :(得分:5)
您已将setCurrent
声明为返回void
(即什么也没有),但是在printf("%i", setCurrent(0));
中,您期望它返回一个int
。其中之一需要更改。
答案 1 :(得分:4)
我在这里想念什么?
您缺少函数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
}
答案 2 :(得分:3)
调用setCurrent时,不会返回任何内容。 void函数本质上不会返回值。根据您的printf语句,您期望从setCurrent调用一个整数。您似乎要返回浮点数,因为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;
}
答案 3 :(得分:2)
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);
}