CCS 550 a vnorene struktury

Pavel Hudeček edizon na seznam.cz
Čtvrtek Březen 20 17:00:29 CET 2014


Nakonec tam mám tohle:

struct __attribute__((packed)) {
	struct __attribute__((packed)) {
		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
	} dat[DHCPT_poc];
	uint32_t ind; // ind. pro prenos z parse_msg do parse_opt =DHCPT_poc neplatny
} dhcpTmp;

Tím jsem se úchylárnám při manipulaci s názvy struktur vyhnul:-)

PH

Od: Tomáš Hamouz 
Jsou to dva odlišné namespacy.

Kompilátor se v tom vyzná, ale také to považuju za úchylné a
nepoužívám to. Když už potřebuju definici struktury (např pokud její
součástí má být ptr na ni samotnou), píšu to

typedef struct _nazev {
    struct _nazev *   ptr_next;
    ...
} nazev;

Tomáš


> Je to sice úchylný, ale funguje to... ovšem dost mě fascinuje, že 
> "struct x {...} x;" vede k x jako identifikátoru typu - to mi přijde ještě úchylnější.

> PH

> Od: Jan Waclawek 
> Neviem, ci to je v nejakej referencnej prirucke napisane dostatocne
> polopatisticky, a momentalne sa mi to nechce hladat, ale hrubo povedana
> pointa je, ze ak v C napisete "struct x {...}", definujete tym
> identifikator ktory sa vola "struct x" a nie "x".


Další informace o konferenci Hw-list