Struktus schrieb:
> Kann ich auf diese Weise drei Structs für die Farben Rot, Blau, Grün
> erzeugen?
Ja, du kannst auf diese weise 3 Variablen vom typ struct LEDstruct
erstellen.
> oder ist es besser, das als
>
> typedef struct LEDstruct
> {
> uint8_t var_1;
> uint8_t var_2;
> uint8_t var_3;
> }
Da fehlt ein Semikolon, und das Typedef ist wirkungslos.
> LEDstruct LEDrot;
> LEDstruct LEDblau;
> LEDstruct LEDgruen;
Müsste "struct LEDstruct LEDrot;" sein, das andere geht nur in C++.
Eventuell amcht es sinn das so zu schreiben, dan würde es in C uns C++
gehen:1 | typedef struct LEDstruct
|
2 | {
|
3 | uint8_t var_1;
|
4 | uint8_t var_2;
|
5 | uint8_t var_3;
|
6 | } LEDstruct;
|
Typedef sorgt immer nur dafür, das keine Variable, sondern ein Datentyp
definiert wird. Gibt es ohne typedef keine Variable, die definiert
würde, macht der Ausdruck mit typedef dafor keinen Sinn.
Die zweite Variante ist trotzdem besser, weil man eine Struktdefinition
meist in mehreren Dateien braucht, und deshalb haufig in header
auslagert. Variablen sollten nicht in Headern definiert werden, und
deshalb macht es oft sinn das zu trennen.