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