问题在C中,我不知道为什么main无法读取“ or_vectb”

洛伦佐·费雷蒂(Lorenzo Ferretti)

我是stackoerflow的新手,这是我的第一个问题。我对代码的算法不感兴趣,我只想知道为什么编译器报告我上面写的错误。错误是:*错误是

:/usr/bin/ld: /tmp/ccw8lUiZ.o: in function `main':
                  ex2.3.c:(.text+0x14a): undefined reference to `or_vectb'
/usr/bin/ld: ex2.3.c:(.text+0x181): undefined reference to `or_vectb'
                 collect2: error: ld returned 1 exit status*
    #include<stdio.h>
    #include<stdlib.h>  
    #include<ctype.h> 
    #define A  {9,7,7,5,5,3}
    #define l  6

    void or_vectb(int len,int *B[len]); 
    void crea_vetpunt(int len,int V[len],int *B[len]){
    int i; 
    for (i=0; i<len; i++){
        B[i]= &(V[i]);
    };
    } 

    void printa_vettore_ptr(int len , int *B[len]){
    int i=0;
    printf ("il vettore B sta puntando a questi elementi : \n ");
    for (i=0; i<len; i++){
            printf("%d",*B[i]);

     }
       //funzione scambia 
     void scambia(int len, int *B[len],int i){
      int j= i+1;
      int * temp_ind;
      temp_ind=B[i];
      B[i]=B[j];
      B[j]=temp_ind;
      }


      // try to order the vect

     void or_vectb(int len,int *B[len]){
     int i,j;
     for (i=0; i<len; i++){
            for(j=0; j<len; j++){
            if(*(B[i])>*(B[i+1])){
                    scambia(len,B,i);
  
             }
             }
     }

     }
     }

     int main (void) {
     int len= l;
     int V[l]=A;
     int* B[l];
     crea_vetpunt(len, V,B);
     printa_vettore_ptr(len,B);
     or_vectb(len,B);
     printa_vettore_ptr(len,B);
     return 0;
      }
*the error is :/usr/bin/ld: /tmp/ccw8lUiZ.o: in function `main':
                  ex2.3.c:(.text+0x14a): undefined reference to `or_vectb'
/usr/bin/ld: ex2.3.c:(.text+0x181): undefined reference to `or_vectb'
                 collect2: error: ld returned 1 exit status*
埃里克·波斯蒂奇

您对函数的定义scambiaor_vectb出现在函数内部printa_vettore_ptr诸如此类的嵌套函数定义是一种特殊用途的特殊功能,某些编译器支持将其作为C标准的扩展。您无需在该程序中使用任何这些特殊目的,也不需要嵌套这些函数定义。

移动的定义scambia,并or_vectb从里面printa_vettore_ptr之前或之后printa_vettore_ptr

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章