L'interfaccia sul mio sistema di compilazione MacOS 10.6.3 per la libreria matematica POSIX è math.h, tuttavia sul mio sistema di destinazione il nome del file di interfaccia è cmath.h. A scuola usiamo il cmath e vorrei essere sicuro che il mio progetto venga compilato quando viene consegnato, come viene realizzato. I server e le workstation a scuola sono x86 con Windows XP. Il GCC è disponibile su entrambe le piattaforme.Interfaccia matematica vs cMath in C++
risposta
Nello standard C++, le funzioni di libreria matematica sono definiti in due intestazioni:
<cmath>
li contiene nel namespace std
(ad es std::sin
), mentre
<math.h>
li contiene nel mondiale spazio dei nomi (quindi solo sin
).
Vi sono ulteriori differenze tra i due: funzioni mentre <math.h>
contiene tutte le funzioni matematiche C con nomi diversi per tipi distinti, come
double sin(double);
float sinf(float);
long double sinl(long double);
ecc, <cmath>
contiene sovraccaricato come
namespace std {
double sin(double);
float sin(float);
long double sin(long double);
}
ecc. (Le librerie C++ potrebbero inoltre esportare sinf
da <cmath>
, ma non si può fare affidamento su questo in un programma portatile.)
Infine, le funzioni fabs
, fabsf
e fabsl
dalla libreria standard C sono state sovraccaricate di std::abs
in <cmath>
.
Anche se entrambe le intestazioni sono nella norma, si dovrebbe davvero preferisce <cmath>
, come <math.h>
è lì solo per compatibilità con pre-standard C++ e C.
Non esiste una cosa come <cmath.h>
nello standard C++.
OK. Ho rimosso la mia risposta piuttosto che modificarla, dato che hai coperto i bit importanti qui. Penso che sia utile menzionare l'uso dello stile di denominazione
@HarperShelby: mettilo dentro, verso la fine. Spero che il PO legga così lontano, perché questa è una vera e propria lista;) –
L'obiettivo è ottenere buone informazioni là fuori - puoi condurre un cavallo all'acqua e tutto il resto. –
- 1. C++ - cmath vs math.h (E intestazioni di estensione con prefisso c-prefisso vs .h)
- 2. C++/CLI classe di interfaccia vs. interfaccia struct
- 3. Mappa C++ delle funzioni di cmath
- 4. #include <cmath> vs #include <math.h> in un programma C++
- 5. Domanda matematica in C o obiettivo C
- 6. Si consiglia di usare cstdio, cstring, cmath, ecc. In C++?
- 7. Interfaccia Null vs Marker
- 8. Interfaccia XML vs hardcoded?
- 9. costante letterale vs variabile nella libreria matematica
- 10. Pirate gioco in matematica - Risolvere con C#
- 11. Interfaccia con parametro generico vs Interfaccia con metodi generici
- 12. interfaccia obiettivo-c - dichiarazione della variabile vs solo proprietà?
- 13. annotazioni vs. interfaccia in Guava EventBus
- 14. ios interfaccia iVar vs Proprietà
- 15. Marker annotazione vs Marker interfaccia
- 16. Interfaccia vs record di funzioni
- 17. Interfaccia/implementazione in ANSI C
- 18. PHP OOP: interfaccia vs approccio non-interfaccia - esempi
- 19. C# costruttore interfaccia
- 20. Interfaccia all'ottava con C#
- 21. C++ interfaccia DLL plug
- 22. Interfaccia C# domanda
- 23. Compilatori JIT per matematica
- 24. Interfaccia di implementazione C#
- 25. C# Generics interfaccia covarianza
- 26. C# - Interfaccia R
- 27. C# dati Annotazioni Interfaccia
- 28. C implementazione proprietà # interfaccia
- 29. C# interfaccia eredità
- 30. Come determinare se C matematica utilizza SSE2?
Qual è il tuo "sistema di destinazione". Quale compilatore, quale sistema operativo ?? Chiedi al tuo insegnante le differenze tra 'cmath.h' e' math.h'? È "" o ""? –
Mi spiace, voglio dire che macos è il mio sistema host e Windows XP è il mio sistema di destinazione. E se il mio professore conoscesse la risposta, allora non dovrei chiedere qui. – awiebe