Portál AbcLinuxu, 27. července 2025 13:08
/* operator call prototype */ typedef void (*opCall)(opStack* ); /* operand struct */ typedef struct op { ... union { ImageStruct* image; int* const; opCall call; } value; }op; /* operand stack */ typedef struct opStack { ... rpcOperand* ptop; rpcOperand* stack; }opStack;Problém je celkem jednoznačný, prototyp funkce
opCall
musí být první, kvůli struktuře op
. Jenže ty funkce budou přistupovat k zásobníku operandů opStack
, který je definován až dole.
Napadlo mě změnit prototyp funkce na void (*opCall)(void* )
a přijít o typovou kontrolu. Eventálně zásobník nepředávat parametrem (stejně to bude globální proměnná). Ale ani jedno z řešení se mi moc nelíbí. Napadá vás, jak z toho ven?
struct opStack; /* operator call prototype */ typedef void (*opCall)(struct opStack* );
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.