LINUX.ORG.RU

> Где в GCC число Pi

> библиотека math.h

Мозг съеден?

Тем не менее, в GNU libc константа `M_PI` тоже объявлена в `math.h`.

Sphinx ★★☆☆
()

>В институте есть BorlandC

Так C или C++?

>_библиотека_ math.h

Извините, но это бугога.

Demon37 ★★★★
()

Может вам лучше бросить профессию программиста? Некомпетентных программистов и без вас развелось сверх меры, а кто промышленность поднимать будет?

anonymous
()
Ответ на: комментарий от annoynimous

> потому что при компиляции, небось, забыто написать -lm

это дефайны, зачем -lm?

dilmah ★★★★★
()

> В институте есть BorlandC, там используется M_PI, библиотека math.h

Гы.

grep M_PI /usr/include/math.h

grep -r '#include *math\.h' /usr/include

anonymous
()

#include <cmath>

Потом смотреть namespace std

anonymous
()

Хедеры надо читать. Собирайте с #define _XOPEN_SOURCE 600 перед #include <math.h>

Пример:

#include <math.h>

int main (void)
{
    double foo = M_PI;
}

Собираем:

$ gcc -std=c99 main.c
main.c: In function ‘main’:
main.c:5: error: ‘M_PI’ undeclared (first use in this function)

$ gcc -std=c99 -D_XOPEN_SOURCE=600 main.c
$
(всё ок)

anonymous
()
Ответ на: комментарий от anonymous

> С чего бы это точнее?

(достаю из кармана ещё один знак)
на.

anonymous
()
Ответ на: комментарий от anonymous

π - число вообще иррациональное и никаким рациональным числом представлено быть не может.. заведомо.

twosev ★★
()
Ответ на: комментарий от Reset

Так короче, если писать не POSIX-код, а нестандартный GNU-код. Для POSIX надо делать -D_POSIX_C_SOURCE=..., и _XOPEN_SOURCE тоже из этой оперы. Во многих (серьёзных) проектах можно найти эти макросы в Makefile'ах. Стандарт требует, и с переносимостью проблем меньше.

anonymous
()
Ответ на: комментарий от anonymous

> Для POSIX надо делать -D_POSIX_C_SOURCE=..., и _XOPEN_SOURCE

Поясню, что тут дело в том, что в стандарте POSIX используются некоторые имена заголовочных файлов, совпадающие со стандартом языка C (например, time.h), и поэтому если в gcc задать строгое соответствие стандарту (--std=c99, например), то POSIX-определения в таких заголовочных файлах будут невидны, если не задать явно эти макросы.

anonymous
()
Ответ на: комментарий от twosev

> π - число вообще иррациональное и никаким рациональным числом представлено быть не может.. заведомо.

в реальном мире, в пределах погрешности - представляем же..и гром с небес не грянул :)

MKuznetsov ★★★★★
()
Ответ на: комментарий от anonymous

3.14159265358979323846264338327950288419716939937510582097494459230781640628620 89986280348253421170679
8214808651328230664709384460955058223172535940812848111745028410270193852110555 964462294895493038196
4428810975665933446128475648233786783165271201909145648566923460348610454326648 213393607260249141273
7245870066063155881748815209209628292540917153643678925903600113305305488204665 213841469519415116094
3305727036575959195309218611738193261179310511854807446237996274956735188575272 489122793818301194912
9833673362440656643086021394946395224737190702179860943702770539217176293176752 384674818467669405132
0005681271452635608277857713427577896091736371787214684409012249534301465495853 710507922796892589235
4201995611212902196086403441815981362977477130996051870721134999999837297804995 105973173281609631859

Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

Умница, возьми с полки пирожок.

anonymous
()
Ответ на: комментарий от anonymous

Специально глянул в math.h: # define M_E 2.7182818284590452354 /* e */ # define M_LOG2E 1.4426950408889634074 /* log_2 e */ # define M_LOG10E 0.43429448190325182765 /* log_10 e */ # define M_LN2 0.69314718055994530942 /* log_e 2 */ # define M_LN10 2.30258509299404568402 /* log_e 10 */ # define M_PI 3.14159265358979323846 /* pi */ # define M_PI_2 1.57079632679489661923 /* pi/2 */ # define M_PI_4 0.78539816339744830962 /* pi/4 */ # define M_1_PI 0.31830988618379067154 /* 1/pi */ # define M_2_PI 0.63661977236758134308 /* 2/pi */ # define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ # define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ # define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */

garikello
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.