[fpc-pascal] Re: Data alignment of records

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Dec 10 13:28:35 CET 2010


On 10 Dec 2010, at 13:08, Luis Fernando Del Aguila Mejía wrote:

> Can someone explain to me, about the Data alignment of  records and  
> other variables.

The alignment of records (and TP-style objects) is the same as  
alignment of its fields with the highest alignment requirement. For  
base types (integers, floating point types, pointers), the alignment  
depends on the target operating system. For Mac OS X and non-i386  
systems, we follow the official ABI (application binary interface) of  
every system.

For i386-platforms other than Mac OS X, I guess we follow Delphi. I'm  
not sure whether these rules are documented anywhere, and they were  
probably implemented based on writing test programs.

Maybe a better question is: why do you want to know the alignment of  
different data types? Since it can change depending on which platform  
you are compiling for, writing your code assuming a particular  
alignment is generally a very bad idea.


Jonas


More information about the fpc-pascal mailing list