chrono píše:
Ten test tam využíva práve to pretečenie (preto tam je to + ULONG_MAX)
Ale ak v tejto podmienke:
Kód:
if (((cislo * 10 + c - '0') + ULONG_MAX) > ULONG_MAX)
dosadime miesto prvej zatvorky lubovolne cislo:
Kód:
if ( ( 1 + ULONG_MAX ) > ULONG_MAX )
nikdy v zivote nebude tato podmienka splnena, pokial sa pohybujeme v datovom type unsigned long, kde ja maximalne cislo prave ULONG_MAX.