在文件的这一点上有太多的函数''参数

时间:2014-12-30 11:34:43

标签: c arguments pass-by-reference

我遇到了问题...

错误:函数'EPJ calc'的参数太多了 错误:此时在文件中

如果我在整个过程中将变量数减少到6而不是11,则此代码可以正常工作。任何人都可以解释为什么,并解决这个问题吗?在分配中,我必须能够重复这个过程10次。

   void loop()
   {
   calc(&person[cc].reacTime[0], &person[cc].reacTime[1], &person[cc].reacTime[2], 
          &person[cc].reacTime[3], &person[cc].reacTime[4], &person[cc].reacTime[5], 
          &person[cc].reacTime[5], &person[cc].reacTime[6], &person[cc].reacTime[7], 
          &person[cc].reacTime[8], &person[cc].reacTime[9], &person[cc].midvaerdi);
     Serial.print("Average time for person ");
     Serial.print(cc);
     Serial.print(" ");
     Serial.println(person[cc].midvaerdi);  
   }

    struct EPJ calc(float *num1,float *num2,float *num3,float *num4,
                    float *num5,float *num6,float *num7,float *num8,
                    float *num9,float *num10,
                    float *midval)
   {
            float temp;
     temp  = (*num1 + *num2 + *num3 + *num4 + *num5 + 
              *num6 + *num7 + *num8 + *num9 + *num10);
     Serial.print("Temp number : ");
     Serial.println(temp);
     *midval = (temp)/nRepeat;
     Serial.print("midval number : ");
     Serial.println(*midval);
   } 

2 个答案:

答案 0 :(得分:2)

它看起来你用12个参数调用calc,但它定义只接受11。

答案 1 :(得分:1)

调用calc()时看起来像是一个简单的错误错误。您已提供两次&person[cc].reacTime[5]参数。