[fpc-pascal] Can FPC optimize: if (s[i]='a') or ...

Rainer Stratmann rainerstratmann at t-online.de
Sun Apr 14 13:28:08 CEST 2019


On Samstag, 13. April 2019 22:30:55 CEST Alexey Tor. wrote:
> E.g. i have a loop which test each s[i] char for several cases: 'a',
> 'b', 'c'.
> 
> for i:= 1 to length(s) do
> 
> if (s[i]='a') or (s[i]='b') or (s[i]='c') then ...
> 
> Can FPC optimize it so it only reads s[i] once (to register), not 3 times?

You can optimise by yourself.

var
 c : char;
 l : longint;

begin
 l := length( s );
 for i := 1 to l do
  c := s[ i ];
  if ( c = 'a' ) or ( c = 'b' ) or ( c = 'c' ) then ...




More information about the fpc-pascal mailing list