[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