Zeilenumbrüche und Zeilenlänge

Wir sollten unseren Code nur so breit machen, dass wir ihn im Editor noch ohne horizontales Scrollen vollständig lesen können. Einen Code der zu breit ist zu lesen und zu verstehen ist sehr schwer, wir müssen als Vergleich dazu nur einmal versuchen ein Buch zu lesen und dabei immer eine Hälfte der Seite abdecken, so dass wir in jeder Zeile unseren Textausschnitt „scrollen“ müssen um ihn zu lesen. Es wird wahrscheinlich jedem einleuchten, dass das nicht optimal ist.
Eine oft verwendete Länge ist 80 Zeichen, die eigentlich auf jedem Bildschirm vollständig dargestellt werden kann. Diese Länge hat sich schon in vielen Programmen bewährt und deshalb sollten wir und angewöhnen sie einzuhalten.
In direktem Zusammenhang mit der Zeilenlänge steht natürlich auch das richtige Verwenden von Zeilenumbrüchen, denn wenn wir die Zeilenbreite von 80 Zeichen einhalten, dann brauchen wir natürlich auch irgendwann einmal ein paar Zeilenumbrüche.
Als Grundregel sollten wir in jede Zeile nur eine Anweisung schreiben, aber auch wenn wir zum Beispiel bei einem Funktionsaufruf so viele Variablen verwenden, dass es schon zu breit werden würde, sollten wir zwischen den Variablen auch manchmal einen Zeilenumbruch einbauen.
Damit das ganze etwas klarer wird, schauen wir uns noch kurz ein Beispiel an.

Schlechter Stil

Durch die sparsame Verwendung von Zeilenumbrüchen wir dieses Codestück nur sehr schwer lesbar.

void uselessFunction(int argument1, float argument2, const char *text, int length, float *float_pointer, char first_letter)
{
  int return_value = argument1 + length; printf("Calculating...\n"); *float_pointer = argument2;
  printf("First letter: %c, Text: %s\n", first_letter, text); return return_value;
}

Guter Stil

Und hier ist noch einmal der gleiche Code, nur dieses mal mit gut platzierten Zeilenumbrüchen. Ich glaub jetzt kann jeder sofort erkennen, dass wenn wir Zeilenumbrüche richtig verwenden, die Lesbarkeit unseres Codes enorm gesteigert werden kann.

void uselessFunction( int argument1,        // So können wir auch
                      float argument2,      // gleich neben den
                      const char *text,     // Variablen Kommentare
                      int length,           // hinschreiben.
                      float *float_pointer, // Ist doch viel schöner
                      char first_letter)    // so, oder?
{
  int return_value = argument1 + length;
 
  printf( "Calculating...\n" ); // Zusammengehörige Codeteile sollten  
  *float_pointer = argument2;   // wir gruppieren.
 
  printf( "First letter: %c, Text: %s\n", first_letter, text); // Und andere Teil sollten wir
                                                               // mit Zeilenumbrüchen optisch
  return return_value;                                         // trennen.
}