Frage

Ich hatte einen üblen Tippfehler, die meine Zeit verschwendet und die Zeit meines Kollegen, es war so etwas wie folgt aus:

for (i = 0; i < blah; i++); // <- I had a semi-colon here, that's the bug!
{
  // Some awesome logic here
}

Zunächst einmal ist es sehr peinlich, zweite Sache, ich soll nie wiederholen. Ich bin relativ neu in C. In Java, ich denke, ich kann FindBugs Fehler wie diese zu fangen, was Werkzeug sollte ich für C-Code verwenden? Lint?

War es hilfreich?

Lösung

Ja, PC-Lint ist wahrscheinlich das beste Werkzeug zur Verfügung.

Andere Tipps

Neben Lykathea PC-Lint Vorschlag , können Sie auch besser (oder zumindest mehr) Diagnose erhalten, wenn Sie die Warnstufe des Compilers stoßen. So etwas wie /W4 oder -Wall

Obwohl ich nicht sicher bin, ob Ihr Problem mit diesem gefangen worden wäre (MS VC scheint nicht zu Flagge es auch mit allen Warnungen aktiviert). Ich denke, das ist, weil es kein ungewöhnliches Idiom für for ist Schleife leer zu sein, wenn die Arbeit als Nebenwirkungen der Regel Ausdrücke durchgeführt wird.

Ein paar Dinge, die mich in der Vergangenheit gespeichert haben, aus der Spitze von meinem Kopf:

  • Verwenden Sie wenn (3 == bla) statt (bla == 3) , denn wenn man falsch schreiben und Typ (3 = bla) wird der Compiler beschweren.

  • Mit den All-Warnungen Schaltern. Ihr Compiler sollten Sie über leere Aussagen wie, dass warnen.

  • Mit Behauptungen , wenn Sie können und Programm abwehrend. Setzen Sie gute Leistung in Ihrem Programm machen früh fail, sehen Sie die Schwächen sehen, die Art und Weise.

  • Versuchen Sie keine Garantien der Compiler oder das Betriebssystem zu umgehen, haben in Stelle zu setzen. Sie sind für Ihre einfache Programmierung ebenfalls.

Schauen Sie auch unter Klirren statische Analyse

ich anfangen würde, durch das Lernen über Schiene und gdb . Wenn Sie erweiterte benötigen, bauen auf diesen beiden Werkzeugen. Aber sie sind ein guter Anfang.

GCC die meisten Funktionen hat, die Lint über die Warnung Flaggen .

Jede gute GUI-Programmierumgebung ( "IDE" - Integrated Development Environment). Wie Eclipse würde eine Warnung in einem solchen Fall, dass erzeugen

Eine gute Syntax-Highlighter werden einige Fälle wie diese besser sichtbar machen.

Ich würde sehen vorschlagen, wenn Sie die Möglichkeit haben, href="http://en.wikipedia.org/wiki/MISRA_C" zu erzwingen . Sie waren mit großen Gedanken und vielen Regeln geschrieben, die einfach für einen Compiler zu überprüfen. Zum Beispiel erfordert eine Regel, die ich verwende alle NOP Befehle ihre eigene Linie haben. Das bedeutet, wenn Sie ein setzen; am Ende einer Schleife Anweisung wird es eine Fehlermeldung, durch, dass es nicht auf seine eigene Linie ist.

QA · C von Programming Research ist ein weiteres gutes statisches Analyse-Tool für C.

In dieser (alten) Version von Wie man sie schießen im Fuß und in vielen anderen Versionen rund um das Web, C ist immer die Sprache, die für das einfachste Verfahren ermöglicht. Wenn bei der Programmierung C , müssen Sie sich daran erinnern und vorsichtig sein. Wenn Sie Schutz möchten, wählen Sie eine andere Sprache.

Dieses Wort ist zugeschrieben Bjarne Stroustrup (C ++) selbst. Um (mis) Zitat:

  

"C macht es leicht, sich in den Fuß zu schießen"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top