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…?