CCS 550 a vnorene struktury
Pavel Hudeček
edizon na seznam.cz
Čtvrtek Březen 20 12:09:43 CET 2014
Díky, pomohlo.
Jen mi není jasné, proč jsem to nikde nenašel. Všude bylo to, co jsem tam měl původně (akorát bez packed) např:
http://www.cplusplus.com/doc/tutorial/structures/ ukázka dole.
PH
Od: Tomáš Hamouz
Musel byste napsat buď
struct __attribute__((packed)) sDhcpTmp1 {
struct sDhcpTmp dat[DHCPT_poc];
uint32_t ind; // ind. pro prenos z parse_msg do parse_opt =DHCPT_poc neplatny
} dhcpTmp;
nebo
tzpedef struct { // probihajici akce, jeste neni hotovo
uint32_t ipInd; // index pridelene IP
uint8_t rozInd; // index rozsahu
uint8_t st; // stav 0 volno/hotovo, 1-5 offer-iddle, 255 prave zalozeno
uint32_t xid; // Transaction Identifier
} __attribute__((packed)) t_sDhcpTmp;
struct __attribute__((packed)) sDhcpTmp1 {
t_sDhcpTmp dat[DHCPT_poc];
uint32_t ind; // ind. pro prenos z parse_msg do parse_opt =DHCPT_poc neplatny
} dhcpTmp;
> mějme následující kód:
> #define DHCPT_poc 256
> struct __attribute__((packed)) sDhcpTmp { // probihajici akce, jeste neni hotovo
> uint32_t ipInd; // index pridelene IP
> uint8_t rozInd; // index rozsahu
> uint8_t st; // stav 0 volno/hotovo, 1-5 offer-iddle, 255 prave zalozeno
> uint32_t xid; // Transaction Identifier
> };
> struct __attribute__((packed)) sDhcpTmp1 {
> sDhcpTmp dat[DHCPT_poc]; // <<< tady
> uint32_t ind; // ind. pro prenos z parse_msg do parse_opt =DHCPT_poc neplatny
> } dhcpTmp;
> Proč při překladu vznikne na řádku označeném "<<< tady" následující chyba?
> error: identifier "sDhcpTmp" is undefined
> Zkoušel jesm odstranit __attribute__((packed)), nebo přidat typedef, ale žádná změna.
Další informace o konferenci Hw-list