salve

siccome ho scoperto che alcuni compilatori GCC , se si include math.h a inizio file, funzionano mentre altri no e siccome su quelli che funzionano ( ad esempio la versione 4 ) se metto -lm per forzare l' inclusione della libreria mi danno errore, ho deciso di evitare di perdere tempo con il GCC e di farmi a manina la funzione per elevare a potenza.

Quella che mi serve di fatto e' una potenza di interi, ovvero base intera unsigned e potenza intera unsigned, che ovviamente tornera' sempre e solo interi unsigned ... mi dite cosa ne pensate ?

grazie

codice:
#include <stdio.h>

/********************************/
/* Dichiarazione delle funzioni */
/********************************/

unsigned int potenza_interi(
	unsigned int numero,
	unsigned int potenza
); /* funzione per elevare a potenza di tipo intero 
      positivo o uguale a zero un numero anch' esso 
      di tipo intero e positivo o uguale a zero */



/******************************/
/* Definizione delle funzioni */
/******************************/

/* Definizione della funzione main */
int main(
	int 	argc, 
	char 	*argv[]
)
{
	
	printf("Risultato: %i", potenza_interi(4, 2));
	
	/* fine funzione main */
	return 0;
}

/* Definizione della funzione potenza_interi */
unsigned int potenza_interi(
	unsigned int numero,       /* Lavoro: numero da elevare a potenza */
	unsigned int potenza       /* Lavoro: valore della potenza */
)
{
	/* dichiarazione delle variabili locali alla funzione */
	unsigned int elevato = 1;  /* Lavoro: numero da restituire 
				      dopo l' elevazione a potenza */
	
	/* ciclo di controllo per 
	   moltiplicare N(potenza) volte il numero 
	   solo se N e' diverso e maggiore di zero */
	while(potenza != 0 && potenza-- > 0)
	{
		elevato *= numero;
	}
	
	/* fine funzione potenza_interi
	   ritorno l' elevazione a potenza */
	return elevato;
}