Pagina 1 di 1

[C] Implementazione di atof

Inviato: martedì 1 novembre 2005, 12:26
da scorpio2002
Ciao a tutti!
Sto imparando un po' di C e uso come testo di riferimento il Kernighan Ritchie che mi è stato consigliato da molti. Adesso sono arrivato al capitolo 4 dove viene illustrato un algoritmo che serve a valutare una stringa polacca inversa. All'inizio non riuscivo a capire perchè l'algoritmo, sulla mia macchina, desse dei risultato sballati. Poi ho scoperto una cosa interessante...

Non so per quale motivo, ma l'implementazione della funzione "atof" per convertire da stringa a float presente  in math.h non funziona correttamente e restituisce un valore sballato.
Facendo altre ricerche, ho visto che la funzione "atof" è presente anche nella libreria stdlib.h e, questa volta, l'implementazione è corretta.

???Mi chiedo allora a cosa serva la atof della libreria math.h ?!? ???

Ciao,
Donato

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 10:58
da Uncino
Ciao,
e´ da molto che non uso il C ma credo di ricordare che ¨atof¨ sia definita in stdlib.h e non in math.h

Uncino

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 12:22
da twilight
Confermo l'affermazione di Uncino:

Codice: Seleziona tutto

NAME
       atof - convert a string to a double

SYNOPSIS
       #include <stdlib.h>

       double atof(const char *nptr);

DESCRIPTION

.....
ciao

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 15:34
da 81joe81
Sul sito ufficiale di C++ in effetti atof è definita sia in stlib:
http://www.cplusplus.com/ref/cstdlib/atof.html
che in math:
http://www.cplusplus.com/ref/cmath/atof.html

da come è scritto sembra che la funzione in questione sia la stessa..

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 16:13
da Uncino
Per il C++ non so dirti, visto che non mi e'mai piaciuto ed ho sempre evitato di usarlo.
In ANSI C, ossia in ¨C standard¨, e'definita in stdlib.

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 16:15
da twilight
in C++ si, in C no.

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 16:16
da twilight
ops, anticipato di pochi secondi.

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 16:36
da 81joe81
Uncino ha scritto: Per il C++ non so dirti, visto che non mi e'mai piaciuto ed ho sempre evitato di usarlo.
In ANSI C, ossia in ¨C standard¨, e'definita in stdlib.
purtroppo (o per fortuna  ;) ) io invece sono praticamente obbligato a usarlo in continuazione.. quanto mi ha fatto e mi farà penare!

Re: [C] Implementazione di atof

Inviato: domenica 6 novembre 2005, 16:39
da Uncino
Hehehe :)

Scherzi a parte, questo avvalora la mia idea, ossia che il C++ e' davvero un gran casino, oltretutto inefficiente sia sotto láspetto della gestione della memoria che sotto quello della velocita´ di esecuzione, e dunque non vi sono seri vantaggi nell´usarlo. Anche la parte inerente gli oggetti piu´ che nativa, mi pare ¨incollata¨ al C standard.
Le librerie C, per contro, sono relativamente ordinate e molto ottimizzate.

Uncio

Re: [C] Implementazione di atof

Inviato: domenica 20 novembre 2005, 14:49
da nadir
Uncino ha scritto: Hehehe :)

Scherzi a parte, questo avvalora la mia idea, ossia che il C++ e' davvero un gran casino, oltretutto inefficiente sia sotto láspetto della gestione della memoria che sotto quello della velocita´ di esecuzione, e dunque non vi sono seri vantaggi nell´usarlo. Anche la parte inerente gli oggetti piu´ che nativa, mi pare ¨incollata¨ al C standard.
Le librerie C, per contro, sono relativamente ordinate e molto ottimizzate.

Uncio
no per carità non iniziamo un flaming!