• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ M_PI nie wykrywa jako stałej matematycznej.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
3,147 wizyt
pytanie zadane 3 marca 2017 w C i C++ przez Luryxyt Użytkownik (870 p.)
edycja 3 marca 2017
Przerabiam sobie 5odc Mirosława Zelenta Obiektowy C++ i użyta jest tam stała matematyczna M_PI. Otóż po dodaniu biblioteki nie wykrywa mi jej jako takiej zmiennej tylko dalej jako nie zidentyfikowany obiekt. Kompilator Visual Studio 2015.
komentarz 3 marca 2017 przez kornel53 Obywatel (1,610 p.)
Którą bibliotekę dodajesz do programu?
komentarz 3 marca 2017 przez Luryxyt Użytkownik (870 p.)
<math.h> ale nic nie dało

2 odpowiedzi

+3 głosów
odpowiedź 3 marca 2017 przez kornel53 Obywatel (1,610 p.)
wybrane 3 marca 2017
 
Najlepsza

Przed zaincludowaniem tej biblioteki na początku programu dopisz: 

#define _USE_MATH_DEFINES

Powinno pomóc.

komentarz 3 marca 2017 przez Luryxyt Użytkownik (870 p.)
Pomogło. :)
+2 głosów
odpowiedź 3 marca 2017 przez mokrowski Mędrzec (156,260 p.)

I używaj <cmath> a nie <math.h> w programach C++

#define _USE_MATH_DEFINES
#include <cmath>

 

komentarz 4 marca 2017 przez Luryxyt Użytkownik (870 p.)
Czemu <cmath>?
komentarz 4 marca 2017 przez mokrowski Mędrzec (156,260 p.)
Ze względu na pewność definiowania zmiany nazw w linkowaniu funkcji z C do C++. C nie implementuje polimorfizmu i kompilator trzeba o tym poinformować. To że może VS  w wersji X to ma, to tylko "uprzejmość" dostawcy narzędzia ale kiedyś się ... natniesz. Wszystkie nagłówki systemowe z C (np. stdio.h) mają swój odpowiednik w C++ jako "z przyrostkiem "c" (stdio.h -> cstdio, string.h -> cstring, stdlib.h -> cstdlib itd... )
komentarz 4 marca 2017 przez Luryxyt Użytkownik (870 p.)
tylko, że w przypadku <cmath> M_PI nie działa, nawet z #define _USE_MATH_DEFINES
komentarz 4 marca 2017 przez manjaro Nałogowiec (37,390 p.)

Jak nie działa jak działa...

tutaj

komentarz 4 marca 2017 przez Luryxyt Użytkownik (870 p.)
komentarz 4 marca 2017 przez mokrowski Mędrzec (156,260 p.)
Żebyś nie myślał że wprowadzam Cię w błąd:

https://msdn.microsoft.com/pl-pl/library/4hwaceh6.aspx
komentarz 4 marca 2017 przez Luryxyt Użytkownik (870 p.)
No wiem. Czytałem. Tylko, że nie definiuje mi zmiennej matematycznej nie wiem czemu. <math.h> działa normalnie.
komentarz 4 marca 2017 przez mokrowski Mędrzec (156,260 p.)
Jak ma Cię to zatrzymywać, zrób tak by działało i idź dalej. Ja nie mam pod ręką żadnego VS teraz aby zrobić diagnostykę. Niemniej jednak rozumiem że jesteś poinformowany jak to ma wyglądać poprawnie.

Spekuluję.. pewnie jakiś nagłówek lub biblioteka (np. math) nie dołączona do projektu..
komentarz 4 marca 2017 przez Luryxyt Użytkownik (870 p.)
Już dawno robię dalej, od kiedy <math.h> działa. Jakbyś się dowiedział o co chodzi z <cmath> to byłbym wdzięczny za informacje. :)
komentarz 4 marca 2017 przez manjaro Nałogowiec (37,390 p.)
Jak coś nie działa to pretensje tylko do Microsoftu ;)

Podobne pytania

0 głosów
1 odpowiedź 406 wizyt
0 głosów
1 odpowiedź 226 wizyt
0 głosów
5 odpowiedzi 326 wizyt
pytanie zadane 27 kwietnia 2019 w C# przez Moras Obywatel (1,620 p.)

93,103 zapytań

142,077 odpowiedzi

321,562 komentarzy

62,445 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...