c kerdes
    Fazekas Mihály 
    michael at goliat.eik.bme.hu
       
    Wed Apr 26 08:45:04 CEST 2006
    
    
  
Tehat valahogy igy nezhetne ki:
-----------------------------
slong utc_time;
...
if(utc_time<ULONG_MAX) utc_time++;
...
-----------------------------
De ebben az esetben (fordito & beallitas fuggvenye), hogy
"atfordul" -e a szamlalo LONG_MIN -re, vagy overflow hibat kapsz.
De ha ULONG_MAX helyett siman LONG_MAX -ot hasznalsz, akkor 
normalisan fog mukodni.
Raadasul gyorsabb is, mint amit Te irtal:
if(utc_time < (((ulong) -1)+1)/2 ) utc_time++;
Gyorsabb, mivel konstansokkal dolgozik, es nem vegez el foloslegesen
ket matematikai muveletet (osszeadas es osztas).
A tenyleg jo megoldas:
-----------------------------
#include <sys/limits.h>
...
slong utc_time;
...
if(utc_time<LONG_MAX) utc_time++;
...
-----------------------------
-- 
mailto:michael at goliat.eik.bme.hu
Phone: 463-1966
    
    
More information about the Elektro
mailing list