[fpc-pascal] alignment of records

Ralf Quint freedos.la at gmail.com
Mon Aug 10 22:50:12 CEST 2015


On 8/8/2015 12:30 AM, Sven Barth wrote:
>
> Am 08.08.2015 00:37 schrieb "Ralf Quint" <freedos.la at gmail.com 
> <mailto:freedos.la at gmail.com>>:
> >
> > On 8/6/2015 8:25 PM, Xiangrong Fang wrote:
> >>
> >> It seems that $packrecord does not work at all.
> >
> > I always explicitly use PACKED Record as in
> >
> > Type ifmap = PACKED Record
> >                       mem_start: dword;
> >                       mem_end: dword;
> >                       base_addr: word;
> >                       irq: byte;
> >                       dma: byte;
> >                       port: byte;
> >              end;
> >
> > and at least in/up to FPC 2.6.4, this works for me just fine
>
> This depends however on the code you're interfacing with. Also the 
> record you mentioned as an example shouldn't differ with and without 
> packed anyway...
>
>
I just copied and pasted the code snippet from  the OP, to show how to 
use the PACKED Record statement explicitly for a specific record. I am 
using this for cross-platform/cross-compiler/cross-language software for 
at least 30 years now and probably for +20 years in FreePascal (when it 
was still called FPK and was an attempt of creating a 32bit compiler 
compatible with 16bit Turbo/Borland Pascal at that time)...

Beside, on the above record, the layout in fact SHOULD matter as it has 
3 single bytes at the end and there for needs to be aligned on the byte, 
not on any word/dword/etc boundary...

Ralf

Ralf



---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20150810/ee1c7abf/attachment.html>


More information about the fpc-pascal mailing list