View Full Version : [C] Libreria Math. funzioni e tipi
ErodeGrigo
20-01-2011, 13:03
Piccolo e stupido dubbio... ;)
Per le funzioni in Math.h, ad esempio la fabs, esistono 3 versioni:
Possibilità 1:
1) fabs che accetta e restituisce un qualsiasi tipo floating point
2) fabsf che è accetta e restituisce solo float
3) fabsl che accetta e restituisce solo long double
Possibilità 2:
1) fabs che accetta e restituisce solo double
2) come prima
3) come prima
Secondo me dovrebbe essere la possibilità 1, ma vorrei avere conferma....
Bye.
wingman87
20-01-2011, 14:45
http://www.cplusplus.com/reference/clibrary/cmath/fabs/
ErodeGrigo
20-01-2011, 15:37
http://www.cplusplus.com/reference/clibrary/cmath/fabs/
Thnks per il link.....
Allora fabs prende e restituisce un double
Però esistono sempre le versioni float e long double? ovvero fabsf e fabsl?
Evidentemente il mio ambiente di sviluppo mi suggerisce i prototipi c++, anche se stranamente io includo math.h e salvo con estensione .c
C'è un link dove posso vedere i prototipi delle funzioni di libreria direttamente in C?
Bye.
wingman87
20-01-2011, 16:02
Il sito che ho linkato contiene tutta la libreria standard c e c++.
Riguardo fabs credo che tu abbia letto male:
double fabs ( double x );
float fabs ( float x );
long double fabs ( long double x );
Ci sono tre overload della stessa funzione. A seconda del tipo passato quello stesso tipo viene restituito.
ErodeGrigo
20-01-2011, 16:36
Il sito che ho linkato contiene tutta la libreria standard c e c++.
Riguardo fabs credo che tu abbia letto male:
double fabs ( double x );
float fabs ( float x );
long double fabs ( long double x );
Ci sono tre overload della stessa funzione. A seconda del tipo passato quello stesso tipo viene restituito.
Io ho letto: In C, only the double version of this function exists with this name.
E appunto io sto programmando in C.
Bye.
wingman87
20-01-2011, 16:47
Hai proprio ragione, ho letto male io.
Non è tutto: non mi ricordavo che in C l'overload non esiste proprio.
ErodeGrigo
20-01-2011, 16:55
Hai proprio ragione, ho letto male io.
Non è tutto: non mi ricordavo che in C l'overload non esiste proprio.
Ok....
Quindi fabs vale prende e restituisce esclusivamente i double
Se uno vuole le versioni float e long double deve postporre f o l al nome della funzione.
Però mi sa che questa cosa non funziona per tutte le funzioni, ovvero potrebbero esistere funzioni che ammettono solo double o solo float...
Quindi mi serve un sito che mi fornisca i prototipi con tutti i tipi supportati....
Oppure dovrei far capire a devc++ di darmi solo i suggerimenti per l'ANSI C 99
Gazie per l'aiuto...
Bye.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.