2017-09-26 97 views
0

nrOfMeasurements应该等同于'有多少个元素用户类型'来创建一个新的函数(需要)。当我尝试编译时,我得到一个错误int measurements_count = getEnter(measurements, LENGTH);如何解决它?如何匹配功能?

int getEnter(int measurements[COLUMN][LENGTH]){ 
     int x; 
     for(x=0;x<LENGTH;x++){ 
      printf("Enter number #%d: ", x+1); 
      scanf("%d", &measurements[COLUMN][x]); 

      if(measurements[COLUMN][x]==0){ 
       break; 
      } 
     } 
     return x; 
    } 

void nrOfMeasurements(){ 
     int measurements_count = getEnter(measurements, LENGTH); 

     return; 
    } 
+0

什么错误你得到?显然它需要一个参数,但你传递两个参数。 –

+0

@ EugeneSh.labo2.c:21:36:错误:使用未声明的标识符 '测量' int measurements_count = getEnter(测量.. –

回答

0

该错误是由于第二函数:

void nrOfMeasurements(){ 
     int measurements_count = getEnter(measurements, LENGTH); 

     return; 
    } 

变量“测量”被引用时,然而,在不特定变量的函数的范围内限定。

因此错误:

.labo2.c:21:36: error: use of undeclared identifier 'measurements' int measurements_count = getEnter(measurement.. 

>如何解决呢?

measurements必须定义在函数可用的范围内。例如:

void nrOfMeasurements(){ 
     int measurements[COLUMN][LENGTH]; 
     int measurements_count = getEnter(measurements, LENGTH); 

     return; 
    } 

或者,也许measurements可能是一个全局变量:

int measurements[COLUMN][LENGTH]; 

void nrOfMeasurements(){ 
     int measurements_count = getEnter(measurements, LENGTH); 

     return; 
    } 

或者,也许measurements可能是函数的参数:

 void nrOfMeasurements(int measurements[COLUMN][LENGTH]){ 
     int measurements_count = getEnter(measurements, LENGTH); 

     return; 
    } 
+0

*不推荐使用* globals *,实际上,应避免使用它们你的第二个建议是将所需的信息作为参数传递是正确的,实际上很少有时候需要全球化,而且它们几乎不适用于在SO上提出的问题。 –