[fpc-pascal] Typed file problem.
Michalis Kamburelis
michalis at camelot.homedns.org
Thu Jun 23 00:53:29 CEST 2005
Inpromptu wrote:
> I've found the problem... !
>
> if the record is
>
> Myrecord=record
> MyInteger:integer;
> Mystring:string;
> end;
>
> compiled with c:\lazarus\pp\bin\i386-bin\ppc386 without any other parameter, sizeof(Myrecord.Myinteger) shows 2.
>
> compiled inside Lazarus sizeof(Myrecord.Myinteger) shows 4 !
>
> Because of this, Mystring is readed wrong from the file.
>
>
> I think this is a trivial problem, but I don't know how to force MyInteger to be 2 bytes long inside and outside Lazarus... Or 4 bytes long ?
>
>
Size of Integer depends on FPC $mode used. See
[http://www.freepascal.org/docs-html/prog/progap4.html]. So you can
force Integer to be of specific size by making sure that FPC always uses
the same $mode, whether you compile console version or GUI version from
Lazarus.
Or you can use "SmallInt" or "LongInt" (depending on what you want -- 2
or 4 bytes ?) to be sure that, regardless of $mode used, your MyInteger
has always the same size. See
[http://www.freepascal.org/docs-html/ref/refsu5.html].
Michalis
More information about the fpc-pascal
mailing list