对 pesquisar_bin 的未定义引用

Undefined reference to pesquisar_bin

//Ordenacao por insercao/selecao

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>


int vet[10]={8,16,34,13,19,7,45,3,12,9},a,b,aux;

void selecao();
int pesquisar_bin(int,int,int,int);

int main (){
    int opt=0,num,max;
    char continuar;

    printf("ESCOLHA O METODO DE ORDENACAO:\n\
    1- INSERCAO\n\
    2- SELECAO\n\
    3- SAIR\n");
    do{
        scanf("%d",&opt);
    }while(opt!=1 && opt!=2 && opt!=3);

    switch(opt){
        case 1:
            break;
        case 2:
            selecao();
            break;
        case 3:
            exit(1);
            break;
    }

    printf("\n\n1- PESQUISA SEQUENCIAL\n\n\
2- PESQUISA BINARIA\n");
    do{
        aux=0;
        scanf("%d",&aux);
    }while(aux!=1&&aux!=2);

    printf("DIGITE O VALOR A SER PESQUISADO:\n");
    scanf("%d",&num);

    else if(aux==2){
        max=sizeof(vet)/sizeof(int);
        pesquisar_bin(vet[max],0,max,num);
    }
}

//ORDENACAO POR SELECAO

void selecao(){

    int i=1;

    do{
        b=0;

        for (a=0;a<9;a++){
            if(vet[a+1]<vet[a]){
                aux=vet[a];
                vet[a]=vet[a+1];
                vet[a+1]=aux;
                b=1;
            }
        }

        if(b==1){
            printf("Fase %d: [",i);
            for(a=0;a<10;a++){
                printf("%d ",vet[a]);
            }
            printf("]\n\n");

            i++;
        }

    }while(b==1);
}


//PESQUISA BINARIA

int pesquisar_bin(int vetor[],int ini,int fim,int numero){

    int pos;

    pos=((fim-ini)/2)+ini;

    if (ini>fim){
        printf("Valor %d nao encontrado no vetor\n",numero);
        return 0;
    }

    if(numero>vet[pos]){
        return (pesquisar_bin(vet,pos+1,fim,numero));   
    }
    else if(numero<vet[pos]){
        return (pesquisar_bin(vet,ini,pos-1,numero));
    }
    else if(numero==vet[pos]){
        printf("O valor %d se encontra na posicao %d do vetor.",numero,pos);
        return 0;
    }
}

我一直在做一些 C 的练习,但我真的不明白为什么 dev C++ 会返回这个错误。

我已经尝试做很多事情,比如更改参考,包括点和其他事情。

C:\Users\ANONYM~1\AppData\Local\Temp\ccguUdp9.o ordenacao.cpp:(.text+0x128): undefined reference to `pesquisar_bin(int, int, int, int)'

\Mac\Home\Desktop\EXERCICIOS ED\collect2.exe [Error] ld returned 1 exit status

您对 pesquisar_bin 的声明和使用与您的实现不匹配。正如@JMichelB 指出的那样,vetor 被声明为 int 并在调用 pesquisar_bin 时将其传递给 int,但您的实现将 vetor 定义为int[]。在没有 MCVE 的情况下,这是我们目前可以推测的最好结果。

您对 pesquisar_bin 的实现忽略了 vetor 参数,而是使用文件范围内的 vet 变量。代码是乱七八糟的,因为你乱七八糟,实际上并没有发布 MCVE。将 vet 传递给 pesquisar_bin 并更改实现以使用 vetor 参数。