Приветствую.Пусть дан простой код:
#include <math.h>
long hyp(long height, long base)
{
return sqrt(height * height + base * base);
}int main(void)
{
long h = hyp(10, 20);
return 0;
}Компилирую на debian 4.0 (gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)):
#gcc -ansi -pedantic -W -Wall -lm b.cКак я понимаю, по стандарту sqrt возвращает double, мы присваиваем long'у, что должно приводить к потере информации. Но ворнинга нет, почему?
Спасибо.
http://www.opennet.me/docs/RUS/linux_parallel/node248.html
попробывать опцию добавить -O2. Попробывать удалить файл *.o (должен появиться при первой компиляции)и скомпилировать заново.
>http://www.opennet.me/docs/RUS/linux_parallel/node248.html
>попробывать опцию добавить -O2. Попробывать удалить файл *.o (должен появиться при первой
>компиляции)и скомпилировать заново.нет, ничего не помогает
мнится мне, дело в том, что Вы вызываете компилятор С.
А С смотрит на всякие неаккуратности сквозь пальцы.
Компильните Ваш файл с помощью g++ и Вы увидите
соответствующие варнинги.