AccessD Опубликовано 8 февраля, 2006 Жалоба Поделиться Опубликовано 8 февраля, 2006 #include <math.h> int main() { double x = 25.0; sqrt(x); return (0); } при компиляции пишет: > gcc -o test test.c /tmp/ccXPLWvz.o: In function `main': test.c:(.text+0x36): undefined reference to `sqrt' collect2: ld returned 1 exit status хотя при: sqrt(25.0); всё нормально.. что не так? Как заставить sqrt() обработать x? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 8 февраля, 2006 Жалоба Поделиться Опубликовано 8 февраля, 2006 Не знаю, как может работать sqrt(25), может это дефайном сделано? А вообще sqrt требует линковки с libmath: gcc -o test test.c -lm Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
EL[michlen] Опубликовано 8 февраля, 2006 Жалоба Поделиться Опубликовано 8 февраля, 2006 Все правильно. При вызове sqrt(25) используется функция sqrt с аргументом int, а при вызове sqrt(25.0) - double. Угадайте с одного раза, какая из них правильная При использовании double или float даже целые числа рекомендуется писать в формате 25.0 во избежание подобных проблем. P.S. AccessD, сл. раз используйте тег CODE. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 8 февраля, 2006 Жалоба Поделиться Опубликовано 8 февраля, 2006 2 EL[michlen] EL[michlen писал(а) ср, 08 февраля 2006 20:47]P.S. AccessD, сл. раз используйте тег CODE. Вспомнилось SQ, фраза "не пишите все подряд маленькими буквами, что позволено Алану Коксу, не позволено Вам" Эт я к тому, что использовал \[code\] раз или два, для выделения кода мне больше \[b \]нра. И ничо, нормально ЗЫ. Оффтоп, это скорее к создателям фудфорума, а все же согласитесь, хорошо бы иметь аналог тэгов \[php\] для др. языков... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.