Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Как испрвить ошибку?


Автор: TarasProger 6.8.2015, 14:30
Мессага 
Цитата
C:\Projects\Calculator\Calculator\StackWindowWindowProcedure.cpp|19|error: 'M_PI' was not declared in this scope|
, при этом 
Код

#include <math.h>
 есть, а в нём 
Код

#define M_PI        3.14159265358979323846
.

Автор: volatile 6.8.2015, 16:03
Цитата

Math Constants are not defined in Standard C/C++. To use them, you must first define _USE_MATH_DEFINES and then include cmath or math.h.

Автор: volatile 6.8.2015, 16:27
Хотел добавить, это для msvs (вы не написанили какой у вас)
Для других компиляторов читайте соответствующие доки.
В общем случае: 
Цитата(volatile @  6.8.2015,  16:03 Найти цитируемый пост)
Math Constants are not defined in Standard C/C++. 


Автор: TarasProger 6.8.2015, 17:23
У меня кодоблоки.

Добавлено через 3 минуты и 20 секунд
Цитата(volatile @  6.8.2015,  16:03 Найти цитируемый пост)
Math Constants are not defined in Standard C/C++. To use them, you must first define _USE_MATH_DEFINES and then include cmath or math.h.
http://i71.fastpic.ru/big/2015/0806/c9/04acd6fa1a9d277afa618e7cd835cdc9.png. Не помогает.

Автор: volatile 6.8.2015, 17:37
Цитата(TarasProger @  6.8.2015,  17:23 Найти цитируемый пост)
Не помогает.

Это поможет
Код

#ifndef M_PI
# define M_PI  3.14159265358979323846264
#endif

Портабельный вариант. Будет работать на любом.  smile 

Автор: TarasProger 7.8.2015, 09:12
Цитата(volatile @  6.8.2015,  17:37 Найти цитируемый пост)
Портабельный вариант. Будет работать на любом.
Так не хотелось бы явную константу пихать в исходник. Одно дело заинкладить файл, сделанный под конкретную пластформу, а при портировании заменить весь файл на другой, созданный с учётом местной, возможно другой точности double, а совсем другое - таскать за собой саму декларацию.

Автор: volatile 7.8.2015, 12:47
TarasProger, короткий ответ:
Цитата(volatile @  6.8.2015,  16:03 Найти цитируемый пост)
Math Constants are not defined in Standard C/C++. 

длинный, можете почитать например http://stackoverflow.com/questions/1727881/how-to-use-the-pi-constant-in-c
 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)