[fpc-pascal] Initializing records and other complicated structures

Jim hakkie42 at gmail.com
Tue Sep 28 13:30:33 CEST 2010

On 27-9-2010 13:30, Sven Barth wrote:
> Am 27.09.2010 10:38, schrieb Honza:
>> 2010/9/27 Jim<hakkie42 at gmail.com>:
>>> As TIfdTag seems to contain non-pointer records only, I thought I could
>>> use Sizeof and tried this:
>>> FillByte(tag, SizeOf(tag), 0); //initialize var.
>>> The compiler warning doesn't go away though.
>>> Is this the recommended way of doing things?
>> There is not enough code shown to say much. If the ReadTag procedure
>> is declared with a presumably var paramater of type TIfdTag then the
>> compiler warning is OK if the passed record has not been initialized
>> in any way. In such case it may/should help to change the 'var'
>> paramater to an 'out' parameter to explicitly tell the compiler that
>> there is nothing going into ReadTag but only the other way.
> It's enough code, because FillByte (and others) are defined with a "var"
> parameter and such the hint (not a warning) won't go away.
> It's an old topic already and we have just to live with it (regarding
> the Fill* functions). ^^
> Regards,
> Sven
Thanks you two, that helped!



More information about the fpc-pascal mailing list