Diciamo che ho il seguente frammento di codice:la funzione pow di C si rifiuta di lavorare con esponente variabile
int i; double value;
for(i = 0; i < CONSTANT; i++) {
value = (double)pow(2, i);
}
Cercando di compilare il codice produce un "undefined reference to` pow '" errore.
Incluso o escluso math.h
non fa alcuna differenza, poiché finisce comunque per essere incluso.
L'innalzamento di 2.0
a un hardcoded funziona correttamente, ma tutto fallisce se sostituisco l'esponente con un'espressione che contiene i
.
Cosa sto sbagliando? Grazie.
Che compilatore stai utilizzando? C'è qualche altra possibile dichiarazione di 'pow()'? Potresti citare esattamente l'errore? –
Sto usando GCC e non c'è altra dichiarazione di 'pow'. La domanda è sicuramente risposta; quasi tutte le risposte mi hanno aiutato. Vorrei poter accettare più di uno. :) Grazie a tutti. –
Mentre altri hanno commentato il motivo per cui 'pow' non funzionava, l'intero fatto che stai usando' pow' è un grosso problema con il tuo codice. ** C ha un operatore per la base di esponenti 2 ** e si chiama '<<'. Rimuovi questo uso inutile di 'pow' e sostituiscilo con' 1 << i', e dimentica di 'double'. –