[fpc-pascal] Forward struct declaration in C
dhkblaszyk at zeelandnet.nl
dhkblaszyk at zeelandnet.nl
Fri Feb 22 13:43:14 CET 2013
Thanks Sven and Michael,
I will do as you proposed and simply use a pointer for now. Later once the
code has been ported I will have a look to refactor the code.
Regards, Darius
> On 22.02.2013 09:57, dhkblaszyk at zeelandnet.nl wrote:
>> Hi,
>>
>> I'm porting a piece of software to FPC but I got stuck at a forward
>> struct
>> declaration. The situation is as folows.
>>
>> Header 1 declares:
>> struct TaskHandle__;
>> typedef void (*CallBackProcPtr)(struct TaskHandle__ *task);
>>
>> And Header2 provdes:
>> typedef struct TaskHandle__ { int unused; } *TaskHandle
>>
>> However header 2 already references header 1 because it already contains
>> some other type definitions, so I cannot reference header 2 in header 1
>> because of a circular dependency. Can FPC do something similar to C and
>> define a forward record?
>
> A: You could move the declaration of TaskHandle__ to a common unit which
> is used by the other two units.
>
> B: As the TaskHandle__ type seems rather simple move it to the Header 1
> unit with a comment "was originally declared in Header 1" (because
> Header 2 already uses Header 1)
>
> C: You could treat the "task" parmeter for the callback simply as a
> pointer... (of course you reduce static typing with this)
>
> Regards,
> Sven
> _______________________________________________
> fpc-pascal maillist - fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
More information about the fpc-pascal
mailing list