Interfejs w moim systemie kompilacji MacOS 10.6.3 dla biblioteki matematycznej POSIX to math.h, jednak w moim systemie docelowym nazwa pliku interfejsu to cmath.h. W szkole używamy cmath i chciałbym mieć pewność, że mój projekt zostanie skompilowany, gdy zostanie przekazany, w jaki sposób jest to osiągnięte. Serwery i stacje robocze w szkole to x86 z systemem Windows XP. GCC jest dostępny na obu platformach.Interfejs matematyczny vs cMath w C++
Odpowiedz
W ++ standard C, funkcje biblioteczne matematyki są zdefiniowane w dwóch nagłówków:
<cmath>
zawiera je w przestrzeni nazw std
(np std::sin
), natomiast
<math.h>
zawiera je w światowym przestrzeń nazw (tak po prostu sin
).
Istnieją również inne różnice między dwoma: podczas <math.h>
zawiera wszystkie funkcje matematyczne C z różnych nazw różnych typów, takich jak
double sin(double);
float sinf(float);
long double sinl(long double);
itp <cmath>
zawiera przeciążonych funkcji, takich jak
namespace std {
double sin(double);
float sin(float);
long double sin(long double);
}
itp. (Biblioteki C++ mogą dodatkowo eksportować sinf
z <cmath>
, ale nie można na nich polegać w programie przenośnym.)
Wreszcie, funkcje fabs
, fabsf
i fabsl
ze standardowej biblioteki C stały się przeciążeniami std::abs
w <cmath>
.
Choć oba nagłówki są w normie, należy naprawdę wolą <cmath>
, jak <math.h>
jest tam tylko dla wstecznej kompatybilności z pre-standardowej C++ i C
Nie ma czegoś takiego jak <cmath.h>
w standardowej C++.
OK. Usunięto moją odpowiedź, zamiast ją edytować, ponieważ opisałeś tu ważne fragmenty. Myślę, że warto wspomnieć o używaniu stylu nazewnictwa dla innych standardowych bibliotek, ale pozostawiam to tobie. –
@HarperShelby: wstaw to, pod koniec. Mam nadzieję, że PO będzie tak daleko, ponieważ jest to całkiem spora lista;) –
Celem jest uzyskanie dobrych informacji - możesz doprowadzić konia do wody i tak dalej. –
- 1. C++ map funkcji cmath
- 2. C++ - cmath vs math.h (I podobne prefiksy c-prefixed vs .h)
- 3. Funkcja GCD w bibliotece C++ sans cmath
- 4. Interfejs Obiektyw-C - zadeklarowanie zmiennej vs własność?
- 5. Co to jest szybki parser matematyczny C lub Objective-C?
- 6. Czy w C++ zalecane jest używanie cstdio, cstring, cmath itp.?
- 7. Błąd kompilacji cmath podczas kompilowania starego kodu C++ w VS2010
- 8. Przypisanie vs Inicjalizacja w C++
- 9. Interfejs Dziedziczenie w C++
- 10. Adnotacje vs. Interfejs w Guava EventBus
- 11. SVG powiększanie myszy - model matematyczny
- 12. Szybszy algorytm matematyczny poświęcający dokładność
- 13. Domyślny interfejs ustaw w C#
- 14. Interfejs wiersza poleceń w C++
- 15. Interfejs C# - R
- 16. C# rodzajowych Interfejs kowariancji
- 17. C realizacja nieruchomość # interfejs
- 18. == vs Równe w C#
- 19. AangoDB: Interfejs Ghrarial Vs Edges/Documents
- 20. Int32 vs Int64 vs Int w C#
- 21. Decompile C# vs C++
- 22. Boo vs C# vs Python?
- 23. Dlaczego GCC implementuje isnan() bardziej wydajnie dla C++ <cmath> niż C <math.h>?
- 24. Czy Qt ma interfejs C?
- 25. Getter nieruchomość tylko w C interfejs ++/CLI
- 26. Pytanie dotyczące płynny interfejs w języku C#
- 27. Graficzny interfejs użytkownika Samouczek w C
- 28. Interfejs implementujący anonimową klasę w języku C#?
- 29. Jak obsługiwać jednostki w C++ interfejs
- 30. Jak działa interfejs wywoływania aplikacji w C++?
Jaki jest twój "system docelowy". Jaki kompilator, jaki system operacyjny? Zapytaj nauczyciela o różnice między 'cmath.h' i' math.h'? Czy jest to '' lub ''? –
Przepraszam, chodzi mi o to, że macos to mój system hosta, a Windows XP to mój system docelowy. A jeśli mój prof znał odpowiedź, nie musiałbym tutaj pytać. – awiebe