Ciao a tutti.
Ho bisogno di scrivere una funzione C che effettui il confronto tra due parametri passati in ingresso e ritorni il valore 0 se questi sono uguali, ritorni un valore negativo se il primo parametro < del secondo e ritorni un valore positivo se primo parametro > secondo parametro.
Il problema è che questa stessa funzione deve poter essere richiamata sia passandogli 2 stringhe, ma anche passandogli 2 interi (in pratica non deve essere scritta per uno specifico tipo…). E’ ovvio quindi che vi sarà un altro parametro che indichi il tipo dei 2 parametri da confrontare.
Il codice che ho scritto è:
codice:
int Confronta(void *elem1, void *elem2, int codiceTipo)
{
int x;
switch(codiceTipo)
{
case 1: x = strcmp((char *)elem1,(char *)elem2);
break;
case 2: if((int )elem1 < (int )elem2)
x = -1;
else
if((int )elem1 == (int )elem2)
x = 0;
else
if((int )elem1 > (int )elem2)
x = 1;
break;
}
return x;
}
Questo funziona quando la richiamo passandogli 2 stringhe, ma non quando gli passo 2 interi…
Qualcuno saprebbe illuminarmi…?