Programación General > C/C++

 Deifinición multiple: C

(1/1)

zzbug:
Hola a todos
Soy nuevo en el foro asi que primero lo primero: Saludos a todos, tienen una comunidad muy completa por lo que he visto y muy participativa, espero ser una pieza activa de ella y que puedan aprender tanto de mi como yo de uds.
Ahora, el problema:

Estoy aprendiendo C y para ir avanzanado estoy haciendo una calculadora, un proyecto de consola en C::B. una calculadora simple con las 4 operaciones basicas, suma, resta, mutiplicacion y division
El problema es que C::B me lanza un error de definicion multiple y he buscado bastante una solucion sin respuesta asi que acudo a uds, les dejo el codigo:

calc.c

--- Código: C --- #include <stdio.h>#include <stdlib.h>//#include <time.h>#include <unistd.h> int suma (int,int);int resta (int,int);int multiplicacion(int,int);int division(int,int);int validar(char);    int suma (int ia, int ib){        int     ires = ia+ib;        return ires;}  int resta (int ic, int id){        int ires = ic - id;        return ires;}  int multiplicacion (int ia, int ib){        int ires = ia * ib;        return ires;}  int division (int ia, int ib){        int ires=ia / ib;        return ires;}  /*int preNum(){        int ia=0;        int ib=0;        printf ("Escriba dos(2) numeros \n");        scanf("%i"&ia);        scanf("%i"&ib);        return ia,ib;}*/ int validar (char gc){        //char gc;        //gc = getchar();        int res = 0;        if (gc != 's' || gc != 'r' || gc!='m' || gc!='d')        {                printf ("No a seleccionado un caracter valido");                sleep(3000);                res = 0;        return res;        }         else        {        res=1;        return res;        } }  int operatoria(char iOp, int ia, int ib){        int ires=0;         switch (iOp)                {                        case 's':                                ires = suma(ia,ib);                                break;                        case 'r':                                ires = resta(ia,ib);                                break;                        case 'm':                                ires = multiplicacion(ia,ib);                                break;                        case 'd':                                ires = division(ia,ib);                                break;                 }         return ires;}  
main.c

--- Código: C ---#include <stdio.h>#include <stdlib.h>//#include <time.h>#include <unistd.h>#include <ctype.h>#include  "calc.c" int main(){         int ia;        int ib;        int resu=0;        char gch;          do        {        printf ("Que operacion desea realizar suma:s resta:r multiplicacion:m division:d \n");        gch = getchar();         }while (validar(gch) != 0);         do        {        printf ("Escriba dos(2) numeros \n");        scanf("%d",&ia);        scanf("%d",&ib);    } while (isdigit(ia) && isdigit(ib) != 0 );     switch (gch)    {    case 's':        resu=suma(ia,ib);        break;    case 'r':        resu=resta(ia,ib);        break;    case 'm':        resu=multiplicacion(ia,ib);        break;    case 'd':        resu=division(ia,ib);        break;    default:        printf ("Escriba digitos validos");        sleep(3000);        main();    }printf ("%d",resu);         return 0;}  
¿que puede estar pasando?

chenech:
Hola, he copiado el código tal como lo tienes y no me da error, solo un warning de posible perdida de datos y el retorno ret, pero error ninguno.

zzbug:
Gracias chenech... entonces, sera alguna mala configuracion del C::B ? no le he metido mano y por eso me resulta curioso, quizas no es lo ideal dejar las configs por defecto, no? saludos

Navegación

[0] Índice de Mensajes

Ir a la versión completa