C-Programmierfehler & wie zu beheben

October 8

C-Programmierfehler & wie zu beheben

"Schreiben in C oder C++ ist wie alle Schutzeinrichtungen entfernt, Motorsäge mit" ist ein Zitat, Autor Bob Gray zugeschrieben. C ist, zwar nicht ganz so gefährlich, wie Herr Gray impliziert es ist eine mächtige Sprache, die den Programmierer bietet einfachen Zugriff auf die Programmierumgebung ohne viele Einschränkungen. Die Autoren von C, Brian Kernighan und Dennis Ritchie, sagen: "C die Grundphilosophie, dass Programmierer wissen, was sie tun; behält Es erfordert nur, dass sie ihre Absichten explizit." Es ist die aussagend explizit das Programmierer häufig Probleme verursacht.

Anweisungen

1 Beginnen Sie mit einer NULL in C. Arrayfeldindizes Viele Programmierer beginnen, den Zugriff auf ein Array mit Array_variable [1], das ist eigentlich das zweite Element des Arrays. Das erste Element ist Array_variable [0]. In die gleiche Richtung greift der gleiche Programmierer dann ein Element über das Ende des Arrays. Für ein Array mit 10 Elementen, die tiefgestellte Zeichen im Bereich von 0 bis 9, nicht 1 bis 10. Zugriff auf die tiefgestellte Zahl 10 greift das elfte Element des Arrays, die nicht vorhanden ist. Unbeabsichtigt den Zugriff auf Speicher außerhalb Ihrer benannten Variablen kann ein Programm, um ungewöhnlich--nie eine gute Sache zu Ende zu führen.

2 Variablen zu initialisieren, bevor Sie sie verwenden. Ein häufiger Fehler in C-Programmierung ist eine Variable verwenden, bevor alles in die Variable, die besonders lästig, beim Umgang mit Zeigern ist gespeichert. Beispielsweise wenn Sie die Summe aus einer Reihe von Zahlen, die vom Benutzer eingegebenen wollen, unbedingt Initialisieren der Variablen Summe bei Null beginnen. Während Konstante und globale Variablen auf NULL standardmäßig, anderen Variablen nicht.

3 Verwenden Sie symbolische Konstanten oder Variablen konstant um zu Zufallszahlen im Körper Ihres Programms zu vermeiden. Beispielsweise wenn ein Array mit 15 verarbeiten, erstellen Sie eine symbolische Konstante für die Größe des Arrays anstatt der 15 im Hauptteil einer for-Schleife. Wenn Sie die Größe Ihres Arrays ändern, müssen Sie nur die Konstante ändern. Dies vermeidet die C-Programmierfehler, der Erhöhung der Größe eines Arrays aber vergessen, verarbeitet alle Elemente durch eine Konstante in der for-Schleife.

4 Vergleichen Sie Werte mit einer == c. = Symbol für Zuweisungen nicht Vergleiche verwendet wird und ist ein knifflige Fehler in einem Programm zu finden. Eine wenn-Anweisung, die prüft, ob ein Nenner NULL ist, vor dem Ausführen einer Division auszusehen wie diese:

Wenn (Nenner == 0) Printf ("Fehler - kann nicht aufteilen von Zero\n");

Die Anweisung:

Wenn (Nenner = 0) Printf ("Fehler - kann nicht aufteilen von Zero\n");

wird die Nenner-Variable auf NULL, dann scheitert die If zu prüfen, da Zuordnungen auf den Wert dessen, was zu nehmen zugeordnet ist, in diesem Fall NULL. Sie haben nun das Problem erstellt, die, dem Sie für überprüft; Nenner ist NULL, weil Sie es auf NULL gesetzt.

Tipps & Warnungen

  • Programme, völlig willkürlich handeln, sind in der Regel Programme mit Gedächtnisstörungen. Überprüfen Sie für nicht initialisierten Zeiger oder Arrayfeldindizes, die außerhalb der Grenzen des was Sie zugeordnet sind.