Warum struct mit typedef?

05/06/2014 - 13:41 von Edzard Egberts | Report spam
Weiß hier jemand, warum so etwas gemacht wird:

struct _PTPUSBEventContainer {
uint32_t length;
uint16_t type;
uint16_t code;
uint32_t trans_id;
uint32_t param1;
uint32_t param2;
uint32_t param3;
};
typedef struct _PTPUSBEventContainer PTPUSBEventContainer;

Wofür ist die Typdefinition gut, bzw. was unterscheidet diesen Typ von
einer struct, die gleich ohne Unterstrich benannt wurde?
 

Lesen sie die antworten

#1 Jochen Lübbers
05/06/2014 - 14:21 | Warnen spam
Edzard Egberts schrieb:
Weiß hier jemand, warum so etwas gemacht wird:

struct _PTPUSBEventContainer {


[...]
};
typedef struct _PTPUSBEventContainer PTPUSBEventContainer;

Wofür ist die Typdefinition gut, bzw. was unterscheidet diesen Typ von
einer struct, die gleich ohne Unterstrich benannt wurde?



Die Typdefinition ist zumindest bequemer, ich schreibe

PTPUSBEventContainer meinContainer;

anstelle von

struct _PTPUSBEventContainer deinContainer;

Viele (moderne) C-Kompiler erlauben heute auch ein

typedef struct { <Inhalt> } Name;

das war aber, wenn ich mich recht entsinne, nicht immer erlaubt.

Darüber hinaus gab oder gibt es Werkeuge, die auf ein "typedef ..."
einfach so richtig voll abfahren - will sagen, die ihr Potential erst
zusammen mit "echten" Typen voll entfalten. Lint gehört in diese
Kategorie.

HTH
Jochen
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen,
der wird am Ende beides verlieren"

Ähnliche fragen