struct und typedef

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
bowie_22
Beiträge: 20
Registriert: Sa Nov 24, 2012 5:52 am

struct und typedef

Beitrag von bowie_22 » So Dez 30, 2012 7:50 am

Hallo Zusammen,

bin gerade dabei mit ein passende Kodierrichtlinie zu suchen.
Linux-Kernel erscheint mir kurz und knackig und ich gehe mal davon aus, dass die wissen von was sie reden.

http://www.kernel.org/doc/Documentation/CodingStyle

An einer Stelle bin ich allerdings unsicher.
Die Linux-Kernel Richtlinie rät davon ab für struct ein typedef zu verwenden.
In general, a pointer, or a struct that has elements that can reasonably
be directly accessed should _never_ be a typedef.
Andere Quellen meinen typedef verbessert die Lesbarkeit des Codes. Ich würde zu Letzterem tendieren, frage mich aber warum die Linux Fraktion sich gegen typedef für structs ausspricht.
Hat da jemand mal eine Einschätzung?

Danke!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: struct und typedef

Beitrag von Xin » So Dez 30, 2012 11:18 am

bowie_22 hat geschrieben:Andere Quellen meinen typedef verbessert die Lesbarkeit des Codes. Ich würde zu Letzterem tendieren, frage mich aber warum die Linux Fraktion sich gegen typedef für structs ausspricht.
Hat da jemand mal eine Einschätzung?
Wenn Du typedef verwendest, legst Du einen neuen Typ an. Damit hast Du zwei Typen. Du müllst den Namensraum zu.
Wenn Du in einer IDE arbeitest, kommst Du bei der Typsuche auf den Typedef, dann von da aus auf die Struct. Das nervt, besonders, wenn Du einen Member verfolgst, der ebenfalls ein typedef ist.
Damit die typedefs funktionieren, musst Du Includes einbinden. Das ist bei "struct bla *" nicht erforderlich.

Wenn es darum geht, dass Du "struct" nicht schreiben möchtest, kompiliere mit C++.
Typedef ist sehr selten sinnvoll, als Positivbeispiel würde ich Funktionspointer nehmen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

bowie_22
Beiträge: 20
Registriert: Sa Nov 24, 2012 5:52 am

Re: struct und typedef

Beitrag von bowie_22 » So Dez 30, 2012 4:42 pm

Ok, danke für die mal wieder sehr kompetente Antwort.
Dann bleibe ich bei den "Linuxern"

mfro
Beiträge: 346
Registriert: Mi Jan 16, 2013 4:58 pm

Re: struct und typedef

Beitrag von mfro » Mi Jan 16, 2013 5:12 pm

Ein weiterer Grund dürfte sein: damit man sieht, daß ein struct ein struct ist. Daß das sinnvoll ist, sehen auch viele typedef-Anhänger ein und schreiben dann:

Code: Alles auswählen

typedef struct xxx xxx_struct;  // oder ähnlich
nur um dann statt

Code: Alles auswählen

struct xxx

Code: Alles auswählen

xxx_struct
schreiben zu können, was ziemlich offensichtlich ziemlicher Blödsinn ist ;)
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

Antworten