[th/gcc4] apps fixing guide #1 - signed overflow.

Andrzej Krzysztofowicz ankry w green.mif.pg.gda.pl
Pon, 24 Kwi 2006, 13:09:56 CEST


Jacek Konieczny wrote:
> 
> On Sat, Apr 22, 2006 at 01:14:36PM +0200, Andrzej Krzysztofowicz wrote:
> > Mozesz rozwinac temat i zasugerowac, jaki jest przenosny sposob weryfikacji
> > wystapienia przepelnienia dla zmiennych ze znakiem dzialajacy jednoczesnie
> > w C i w C++ ?
> 
> Nie weryfikować występowania, tylko nie dopuszczać do przepełnienia. Tak
> samo jak się nie weryfikyje wystąpienia SIGSEGV przy operacjach na
> wskaźnikach.

Heh. Masz wczytac dwie liczby N-bitowe ze znakiem, ktorych iloczyn tez
bedzie liczba N-bitowa. Jaki nalozysz warunek, aby nie dopuscic do
przepelnienia? N w danym kontekscie wynosi 8*sizeof(dana).
dana moze byc dowolnego typu...

> #include <limits.h>
> 
> ...i użycie *_MIN i *_MAX mnie się wydaje najbardziej sensownym i oczywistym rozwiązaniem.

Jasne. Jakiego *_MAX/*_MIN uzyjesz w definicji makra, ktore ma dzialac dla
danych dowolnego typu ?

-- 
=======================================================================
  Andrzej M. Krzysztofowicz                  ankry w mif.pg.gda.pl
  phone (48)(58) 347 14 61
Faculty of Applied Phys. & Math.,   Gdansk University of Technology


Więcej informacji o liście dyskusyjnej pld-devel-pl