[C] Implementazione di atof

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
scorpio2002
Prode Principiante
Messaggi: 16
Iscrizione: lunedì 31 ottobre 2005, 9:11

[C] Implementazione di atof

Messaggio 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
Uncino

Re: [C] Implementazione di atof

Messaggio 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
Avatar utente
twilight
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3849
Iscrizione: giovedì 17 febbraio 2005, 16:29
Località: L'Aquila
Contatti:

Re: [C] Implementazione di atof

Messaggio 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
Avatar utente
81joe81
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1258
Iscrizione: giovedì 3 novembre 2005, 20:04
Contatti:

Re: [C] Implementazione di atof

Messaggio 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..
Uncino

Re: [C] Implementazione di atof

Messaggio 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.
Avatar utente
twilight
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3849
Iscrizione: giovedì 17 febbraio 2005, 16:29
Località: L'Aquila
Contatti:

Re: [C] Implementazione di atof

Messaggio da twilight »

in C++ si, in C no.
Avatar utente
twilight
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3849
Iscrizione: giovedì 17 febbraio 2005, 16:29
Località: L'Aquila
Contatti:

Re: [C] Implementazione di atof

Messaggio da twilight »

ops, anticipato di pochi secondi.
Avatar utente
81joe81
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1258
Iscrizione: giovedì 3 novembre 2005, 20:04
Contatti:

Re: [C] Implementazione di atof

Messaggio 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!
Uncino

Re: [C] Implementazione di atof

Messaggio 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
Avatar utente
nadir
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 325
Iscrizione: domenica 20 novembre 2005, 14:38
Località: Bologna
Contatti:

Re: [C] Implementazione di atof

Messaggio 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!
Real programmers don't comment their code. If it was hard to write, it should be hard to understand.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti