[fpc-pascal] overflow checking

Vinzent Hoefler JeLlyFish.software at gmx.net
Fri Jun 23 11:41:12 CEST 2006


On Friday 23 June 2006 08:59, Пётр Косаревский wrote:
> I know, that I can split {$IF} block:

Well, if you do define CHECK_OVERFLW depending on the current compiler's 
settings like this:

{$IFOPT Q+} {$DEFINE CHECK_OVRLW} {$ENDIF}

then ...

> {$Q-} e:=f+g; {$IFDEF CHECK_OVRLW} {Q+} {$ENDIF}

... this looks like one of the easiest ways.

> Is this a better practice?

Well, my practice is to use more lines, so that the instruction(s) in 
question don't get hidden by all the compiler-directives surrounding 
it.

Like this:

|{$IFOPT Q+} {$DEFINE OPT_Q} {$Q-} {$ENDIF}
|Bit_Working_Reg.L := (Bit_Working_Reg.L * $100) or
|                     Ifd.Lzw^.Input_Buf[Byte_Position_In_Buffer];
|{$IFDEF OPT_Q} {$UNDEF OPT_Q} {$Q+} {$ENDIF}

Your's is certainly shorter, but it depends on a global definition, 
which is something I'm always trying to avoid.


Vinzent.




More information about the fpc-pascal mailing list