ForumOffizieller Styleguide für C++
Axel Zimmermann – Mittwoch, 02. Februar 2005 00:11 Uhr

Hallo,

Je weiter man mit der C++ Programmierung kommt desto unsauberer wird der Code. Nun kann man das ganze ja auch Ordentlich schreiben, was allerdings im Auge das Betrachters liegt. Es würde also Sinn machen einen Offiziellen Styleguide zu kennen in dem bestimmte regeln festgelegt sind, bezüglich Format, Namensgebung etc..
Also hab ich mal gegoogelt und folgendes gefunden:[1-3]

Das wären so die wesentlichen ergebnisse miener Suche.Gibt es auch eine Offizielle Verison in Deutsch? Oder eine besonders Angesehene? Denn es macht ja wohl keinen Sinn soviele Regeln zu “lehrnen” wenn es die sind, die keiner Anerkennt.

MFG

AZ

[1] http://bel.gsi.de/mk/sty/cstyle.html
[2] http://www.dimajix.com/projects/styleguide.de.shtml
[3] http://www.ges-training.de/Expertentips/C++-Regeln/EL_CPP_17.html

3 Antworten
Dominik Di Lorenzo – Mittwoch, 02. Februar 2005 07:32 Uhr

Hi!

Da das hier ja eine Linux-Community ist, schau doch statt bei Google mal im kernel-source:
/usr/src/linux/Documentation/CodingStyle

Murphy – Mittwoch, 02. Februar 2005 12:11 Uhr

Es gibt keinen wirklich offiziellen und einheitlichen Styleguide für C++ (oder andere Sprachen, AFAIK, außer wo die Syntax direkt die Semantik beeinflußt wie bei den Einrückungen in Python); einige wirklich wichtige Sachen haben sich aber allgemein durchgesetzt (Konstanten werden großgeschrieben etc.). Welche Vorgaben einzuhalten sind hängt i. d. R. vom Entwicklerteam bzw. der Firma ab. Du solltest dir allerdings einen persönlichen “Default”-Styleguide zulegen, den du anwendest wenn keine anderen Vorgaben gemacht werden, das verbessert die Lesbarkeit deines Codes durch dich selbst auch Jahre später.
Anregungen kannst du dir ja von den gelisteten Webseiten holen. Allerdings ist IMHO nicht jede dieser Vorgaben sinnvoll oder gar notwendig, ganz zu schweigen von Variationsmöglichkeiten die den gleichen Zweck erfüllen (z. B. die verschiedenen Möglichkeiten Blockklammern zu setzen); vieles ist Geschmackssache und darüber läßt sich bekanntlich gut streiten. Dein wichtigstes Ziel sollte sein den Code so lesbar wie möglich zu machen, auch für andere. Dazu zählt vor allem daß du einmal eingeführte Formatierungen auch durchhältst.

Sascha Berkenkamp – Mittwoch, 02. Februar 2005 17:48 Uhr

Ich habe bisher selber sehr viel C programmiert und kenne das Problem des Styles. Ich denke jedoch, dass man sich das Leben mit Hilfe eines geeigneten Editors einfacher machen kann. Die Syntax von Variablen und Konstanten sind ja allgemein schon kurz erwaehnt worden, insbesondere bei der Benennung von Variablen macht es Sinn (damit das Programm auch fuer andere oder spaeter lesbar bleibt) diese sinnvoll zu vergeben. Sprich wenn man viel mit i,j,… als Variablen arbeitet, dann ist es selbst nach einigen Monaten sehr schwierig seinen eigenen Code zu verstehen (daher auch kommentieren).
Um auf das Thema Style zurueckzukommen, es gibt ein paar festgelegte C bzw. C++ Styles, die sich mehr oder weniger in der OpenSource Szene durchgesetzt haben. Ich zietiere aus Learning GNU Emacs, Debra Cammeron:

CC-Mode: The default coding styl,e from which all others derived
GNU: Style used in C code for Emacs itselfs and other GNU-related programs
K&R: Style of the classic text on C, Kernsighan and Ritchie’s _The C Programming Language_
BSD: Style used in code for BSD-derived versions of UNIX
Strousstrup: C++ coding style of the standard reference work, Bjarne Strousstrup’ _The C++ Programming Language_
Whitesmith: Style used in Whitesmith Ltd’s documentation for their C and C++ compilers
Ellemtel: Style used in C++ documentation from Ellemtel Telecomunication Systems Laboratories in Sweden

Dies sind alles Styles, die Emacs kennt. Ich denke auch wenn Du vielleicht kein Emacs Freund bist kann man sich die Codes am Besten in Emacs angucken indem man sich einen Quelltext in den Editor laed, den Stylecode auswaehlt (ESC x c-set-style, z.B. K&R ) den Code markiert (ESC x mark-whole-buffer) und neu formatieren laesst (ESC x indent-region). Das ganze machst jetzt fuer jeden aufgefuehrten Style.
Am besten Du schreibst selber noch ein wenig Code in dem jeweiligen Code, denn unter anderem brechen z.B. manche Styles automatisch das { um in beginnen es in einer neuen Zeile!
Mein persoenlicher Favourit ist momentan der Stroustrup Code.

Desweiteren kann ich solange Du Dir noch keine Gedanken um einen vernuenftigen Editor Gedanken gemacht hast es waermstens empfehlen. Sehr wichtig ist es dabei seinen Editor kennenzuleren und auch die Kommandos zu beherrschen, die nicht mit der Maus erreichbar sind. So ist es ganz wichtig die Sprungbefehle zu kennen, Ersetzbefehle, Loeschen etc. Das mag am Anfang schwer sein alles zu behalten, aber man wird merken, dass man nachher viel schneller durch den Text navigiert wie man sich je erhofft hatte.
Ich persoenlich musste am Anfang meines Studiums auf Emacs umsteigen und habe Ihn anfangs gehasst, aber mittlerweile komme ich sehr gut damit zu recht und er ist ohne Maus meineserachtens sehr gut zum Programmieren geeignet. Mir persoenlich gefaellt auch Jedit sehr gut.

Ich will jedoch jetzt keine Diskussion zum Thema Editor beginnen, aber ich denke es ist Deine Entscheidung zumal wohl jeder bessere Editor aehnliche Syntax Moeglichkeiten (und auch Kompiliermoeglichkeiten aus dem Editor, etc.) bietet wie der Emacs, vim oder Jedit. Bedenke immer im Editor bist Du ohne Maus meist schneller wie mit Maus (Tip: gerade am Anfang Maus abklemmen, abschneiden oder nix graphisches benutzen)

Daher nochmal kurz zusammengefasst:
Dein persoenlicher Style sollte lesbar sein und Dein Editor kann Dir dabei helfen. Zum Programmieren gehoert ein Tool wie ein guter Editor und solltest Du mit dem Programmieren beginnen, dann ist es zwar anfangs eine Mehrbelastung sowohl Editor wie auch die Sprache zu erlernen, aber es lohnt sich.

Sebastian B. – Mittwoch, 02. Februar 2005 13:37 Uhr

Guten Tag,
ich zitiere: “C-Programme sehen aus, als hätte jemand ein Gürteltier über die Tastatur gewälzt.”

Jedem is es freigestellt auch in z.B. Basic “strukturiert” oder “stylisch” zu programmieren, jeder kann das aber auch lassen.

MfG
Sebastian