[fpc-pascal] Forward struct declaration in C
Sven Barth
pascaldragon at googlemail.com
Fri Feb 22 12:11:29 CET 2013
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
More information about the fpc-pascal
mailing list