8.5. Guter Programmierstil
- Initialisieren Sie, wenn möglich, Arrays gleich bei ihrer Definition. Dabei können Sie Werte, die in geschweiften Klammern stehen und durch Komma getrennt sein müssen, auf einmal zuweisen. Später benötigen Sie dazu eine Schleifenkonstruktion.
- Bedienen Sie sich einer for-Schleife, um der Reihe nach auf die Elemente eines Arrays zuzugreifen. Diese hat den Vorteil, daß die Index-Variable in der Schleifenanweisung entsprechend initialisiert werden kann und stellt sicher, daß der Zähler erst nach der Abarbeitung des Schleifenkörpers verändert wird. Falls Sie doch die while-Schleife benutzen, dann achten Sie auf unerwünschte Nebeneffekte bei der In- bzw. Dekrementierung der Zählervariablen, die den Zugriff via Index beeinträchtigen könnten.
- Benutzen Sie bei der Definition von Arrays symbolische Konstanten anstelle fester Größenangaben! So läßt sich das Programm besser warten und macht zudem das Bewegen innerhalb von Arrays sicherer.
- Sorgen Sie dafür, daß sich in Ihren Programmen keine wilden Pointer befinden, d.h., initialisieren Sie nach Möglichkeit Pointer vor ihrem Gebrauch.
- Ziehen Sie die Benutzung von Indexen der Pointer-Arithmetik vor, sobald Sie mit Hilfe eines Pointers auf die Elemente eines Arrays zugreifen. Diese Form zeigt unmißverständlich, daß sich der Pointer in einem Array bewegt.
- Stellen Sie sicher, daß Sie beim Aufruf der Funktionen malloc(), calloc() und realloc() Vorkehrungen für den Fall eines Mißerfolgs treffen. Ansonsten kann der Fall eintreten, daß ein NULL-Pointer dereferenziert werden soll, was zu einem vorzeitigen Ende des Programms führen würde.
- Verwenden Sie bei der Anforderung von Speicher den sizeof-Operator, anstatt eine feste Anzahl an Byte zu verlangen. Diese Vorgangsweise erhöht die Portabilität von Programmen und garantiert, daß die richtige Speichermenge zur Verfügung steht.
- Bedenken Sie, daß bei der Dereferenzierung von Pointern durch Indexe kein Inhaltsoperator erforderlich ist. Deswegen: entweder Index oder Inhaltsoperator!
- Um angeforderten Speicherplatz gleich mit 0 zu initialisieren, ist es geschickter, calloc() anstatt malloc() zu verwenden.
- Sorgen Sie dafür, daß angeforderter Speicherplatz mit free() wieder freigegeben wird, sobald Sie ihn nicht mehr benötigen!