[fpc-pascal]About order of units...

XHajT03 at mbox.vol.cz XHajT03 at mbox.vol.cz
Sun Aug 31 12:31:47 CEST 2003


From:           	L D Blake <ldblake at sympatico.ca>
Organization:   	Secret society to end secret societies
To:             	Marco van de Voort <fpc-pascal at lists.freepascal.org>
Subject:        	Re: [fpc-pascal]About order of units...
Send reply to:  	fpc-pascal at lists.freepascal.org
Date sent:      	Sat, 30 Aug 2003 15:29:48 -0400

> From base.inc ...
> 
>   { was #define dname(params) def_expr }
>   { argument types are unknown }
>   function HIBYTE(w : longint) : BYTE;
> 
> Should be  hibyte(w : word) : byte;  according to the SDK.
> 
> 
>   { was #define dname(params) def_expr }
>   { argument types are unknown }
>   function HIWORD(l : longint) : WORD;
> 
> Should be hiword(l : longword) : word;
.
.

If you have a look at the implementation, you'll quickly find, that 
all of the examples you listed in this mail make absolutely _no_ 
difference. For example:
----------
  function HIBYTE(w : longint) : BYTE;
    begin
       HIBYTE:=BYTE(((WORD(w)) shr 8) and $FF);
    end;
---------
The first thing being done with the supplied argument is type casting 
to a word. BTW, at least some of these macros could probably be 
implemented more efficiently using some pointer arithmetics, but 
that's a different story.

Tomas





More information about the fpc-pascal mailing list