On 22.02.2013 09:57, dhkblas...@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@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal