C/C++ Coding Style
Hier sammeln wir nach und nach Regeln für unseren gemeinsamen Coding Style. Durch einen einheitlich Programmierstil wird der Programmcode für alle lesbarer und wartbarer.
Regel
Das Erstellen eines Coding Styles ist kein demokratischer Prozess.
Regel
Das Erstellen eines Coding Styles ist kein demokratischer Prozess.
Regel
Es gibt keinen Fight Club.
Regel: Zeilenlänge, Einrücktiefe, Tabs
-
Keine Zeile ist länger als 80 Zeichen.
-
Keine harten Tabs. Ein Tab wird durch 4 Leerzeichen ersetzt.
-
Einrücktiefe ist 4.
Regel: Blöcke
-
Es werden stehts {...}-Blöcke benutzt. Auch bei einzeiligen if, while, usw. Anweisungen. Also stets
if (i>0) {
return true;
}
Und nie
if (i>0)
return true;
-
Bei einer Funktion beginnt der Block in einer neuen Zeile:
void
dummy()
{
// ....
}
-
Bei Schleife oder bedingten Anweisungen beginnt der Block mit der Schleife oder der Bedingung:
for (i=0; i<10; ++i) {
if (i>0) {
return true;
}
}
-
Falls eine Zeile zu Lang werden würde (siehe oben) darf man Bedingungen umbrechen:
if ((someVeryLongVariable >= anotherLongVariable + 100)
|| (someVeryVeryVeryLongVariable <= anotherVeryVeryLongVariable))
{
return true;
}
Regel: Schreibweise von Variablen, Konstanten und Macros
-
Variabel Namen schreibt man klein, z.B. i, j, ... nicht I, J, ...
-
Zusammengesetzte Namen von Variablen beginnen klein, jedes weitere Wort wird mit Großbuchstaben angefügt, z.B. numRows (nicht num_rows).
-
Konstanten beginnen mit einem Großbuchstaben, z.B. Pi, ...
-
Macros bestehen nur aus Großbuchstaben und haben mindestens zwei Zeichen.
Achtung: Unterschied von Konstanten in C und C++ beachten.
Regel: Inkrement
-
Falls ein Postinkrement i++ den gleichen Effekt wie ein Preinkrement ++i hat, dann wird das Preinkrement bevorzugt.
-
Bei einem Inkrement ungleich 1 wird += bzw. -= benutzt. Also i+=2 statt i = i + 2.
Regel: Pointer Definition/Deklaration
Der Stern steht bei der Variable. Das ist insbesondere dann wichtig, wenn die Definition von Pointern und Variablen gemischt wird. Also
Und nicht
Denn in beiden Fällen ist p ein Pointer und x nicht.
Regel: Keine Leerzeichen am Zeilenende
Keine Leerzeichen unmittelbar vor dem Zeilenumbruch (keine 'Trailing Spaces').