[Comm] value overflow on C
Andrey Rybak
=?iso-8859-1?q?ra_=CE=C1_iop=2Ekiev=2Eua?=
Ср Фев 22 15:51:18 MSK 2006
> ИМХО глобально решить проблему можно только если использовать другие языки.
> В случае целочисленных выражений проблему можно сгладить, просто взяв int
> тип пошире (например, long long).
>
>
В том то и дело, что взять тип пошире - не кошерно в моем случае.
Расчеты величин проходят в их (величин) зонах сингулярности, где область
значений резко увеличивается даже при малых изменениях аргумента. В
тоже время увеличив ширину типа, я увеличу и так большое время счета.
Поэтому мне надо просто детектировать, что я подошел к предельным
величинам. Просто условными оператороми (if например) эта задача
решается неудовлетворительно.
А вопрос у меня возник, потому что помнится мне, что в ассемблере есть
флажок переполнения байта величины (при инкременте например), поэтому
думается мне, что при близости Си к низкоуровнему программированию,
такая фича (определение превышения допустимой величины) должна быть.
Именно поэтому я привел пример с ERANGE.
Есть еще идеи?
Подробная информация о списке рассылки community