#3 ondra.holub
toto nefunguje :-(. Snaží se to pokaždé nacpat do první položky.
Díky za odpověď.
Poznávání "co, je co" řeším ve struktuře, ve které je ten union vložený a to, o co se pokouším je implementace adresáře objektů "object dictationary" k CANopen. Protože nemám místa nazbyt, tak jsem chtěl jednoduché objekty implementovat pouze jako ukazatel na data někde jinde v programu a ty složitější řešit přes ukazatele na funkce.
Můžeš mě prosím popostrčit ohledně void ukazatelů? Při zběžném googlování jsem nenarazil na způsob, jak je realizovat tak, aby fungovali jako ukazatele na proměnné i funkce. Je to vůbec možné?
Dobrý den,
mám principiálně takovýto union:
typedef union
{
int *pInt;
void (*pFcn)(int);
} u_t;
a potřebuji staticky definovat pole s tímto unionem, takže něco jako:
int fooInt;
void fooFce(int i);
const u_t u[] = {{.pFce = &fooFce}, {.pInt = &fooInt}};
Problém je v tom, že nemůžu použít C podle c99, ale jen c89. Takže nemůžu použít "designated initializers". Zároveň to píšu pro mikrokontrolér, takže jde o každý byte a nemůžu si dovolit nahradit union strukturou a pole musí být definováno s const.
Nevíte někdo, jak toto vyřešit?
Díky moc!