From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <43FC5E46.9000909@iop.kiev.ua> Date: Wed, 22 Feb 2006 14:51:18 +0200 From: Andrey Rybak User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.1) Gecko/20060130 SeaMonkey/1.0 MIME-Version: 1.0 To: =?KOI8-R?Q?=F3=D0=C9=D3=CF=CB_=D2=C1=D3=D3=D9=CC=CB=C9_=D0=CF_=C9?= =?KOI8-R?Q?=D3=D0=CF=CC=D8=DA=CF=D7=C1=CE=C9=C0_=C4=C9=D3=D4=D2=C9=C2=D5?= =?KOI8-R?Q?=D4=C9=D7=CF=D7_ALT_Linux?= References: <43FC4A2E.5030302@iop.kiev.ua> <20060222115141.GG19814@damir.rnd.local> In-Reply-To: <20060222115141.GG19814@damir.rnd.local> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.88/1297/Tue Feb 21 21:44:31 2006 on rmaile.iop.kiev.ua X-Virus-Status: Clean X-Spam-Status: No, score=-3.4 required=4.0 tests=ALL_TRUSTED,BAYES_00, CHARSET_FARAWAY,MIME_CHARSET_FARAWAY autolearn=ham version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on rmaile.iop.kiev.ua Subject: Re: [Comm] value overflow on C X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.6 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Feb 2006 12:51:10 -0000 Archived-At: List-Archive: List-Post: > ИМХО глобально решить проблему можно только если использовать другие языки. > В случае целочисленных выражений проблему можно сгладить, просто взяв int > тип пошире (например, long long). > > В том то и дело, что взять тип пошире - не кошерно в моем случае. Расчеты величин проходят в их (величин) зонах сингулярности, где область значений резко увеличивается даже при малых изменениях аргумента. В тоже время увеличив ширину типа, я увеличу и так большое время счета. Поэтому мне надо просто детектировать, что я подошел к предельным величинам. Просто условными оператороми (if например) эта задача решается неудовлетворительно. А вопрос у меня возник, потому что помнится мне, что в ассемблере есть флажок переполнения байта величины (при инкременте например), поэтому думается мне, что при близости Си к низкоуровнему программированию, такая фича (определение превышения допустимой величины) должна быть. Именно поэтому я привел пример с ERANGE. Есть еще идеи?