• Авторизация


Ну не гомосексуализм, а? Про целочисленные типы Фортрана 23-08-2007 09:21 к комментариям - к полной версии - понравилось!


Всегда пользовался коммерческими компиляторами Фортрана 90 - фирм DEC (он же Compaq, ныне HP) и Lahey (Fujitsu-Lahey). Вчера решил откомпилировать программку g95 или gcc - оказывается, там приняты "симметричные" целочисленные типы, т.е. однобайтовое целое разрешено в диапазоне от -127 до 127, а не от -128! Как жить дальше, не очень ясно. Возможно, у gcc ещё есть опция, позволяющая задать диапазон для целочисленной переменной (сегодня исследую), но у g95 этого нет практически наверняка (исследовал вчера). Это маразм и дебилизм жёсткий. Или я чего-то не понимаю. Допустим, при считывании битмапа мне встречается число -128 (на самом деле это сишный unsigned char, равный 128, а в Фортране нет беззнаковых типов, но не суть), программа нормально отрабатывает. Но при попытке присвоения переменной значения -128 чтением из стандартного потока ввода возникает целочисленное переполнение! Бррр.
вверх^ к полной версии понравилось! в evernote
Комментарии (8):
zerolevel 24-08-2007-09:45 удалить
Действительно как-то это неправильно... И как в итоге всё решилось?
braindump 24-08-2007-10:43 удалить
Считываю данные из файла цельным массивом, объявленным как integer(1) - нормально, и вычисления можно производить. Самое интересное, что значение -128 получается даже напечатать в устройство. Чудеса какие-то. Гуглил, находил в рассылках информацию от разработчиков об удалении из компилятора проверок целочисленного переполнения. Похоже, они эти проверки и правда удалили, но не до конца:) А откомпилировать получилось, всё работает:) Продолжаю писать.
pereresus_buggy 05-09-2007-14:36 удалить
Какая версия gcc-то?.
pereresus_buggy 05-09-2007-16:11 удалить
braindump, а 3.3.2 или 2.95 не подходят? Я так вообще четвёрки стремаюсь…
braindump 05-09-2007-16:25 удалить
Нет, gfortran только в четвёрках появился(: Да я освоился вроде, вычисления проводить можно, вводить в бинарном виде тож. Проблема проявляется только тогда, когда производится перевод числа из символического представления.
braindump 05-09-2007-16:50 удалить
Нет, это ж компилятор фортрана 77, он 90х и 2003 не понимает. Язык сильно поменялся, практически стал другим.


Комментарии (8): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Ну не гомосексуализм, а? Про целочисленные типы Фортрана | braindump - Дневник braindump | Лента друзей braindump / Полная версия Добавить в друзья Страницы: раньше»