Gültige If Abfrage?
-
Hallo,
ich suche die Ursache von gefährlichen sporadischen Fehlpositionierungen auf
einer Maschine von 1997. Sprache ist C unter QNX.
Das Programm wurde von Profis geschrieben, trotzdem frage ich mich ob folgende
Abfrage korrekt sein kann.if (status == OK && fabs(axpos[Y_AXIS] - last_y_dipped < 100.0))
Ich würde die Abfrage so formulieren
if (status == OK && fabs(axpos[Y_AXIS] - last_y_dipped) < 100.0)
möchte aber wegen Crash-Gefahr kein Risiko eingehen.
-
Das obere ist schon gültiges C, das untere sieht aber sinnvoller aus. Das untere prüft, ob der Absolutbetrag von
axpos[Y_AXIS] - last_y_dipped
kleiner als 100 ist. Im oberen Beispiel ist die Benutzung von fabs hingegen nutzlos, da es auf das Ergebnis des Vergleichsoperators wirkt. Das heißt, für negativeaxpos[Y_AXIS] - last_y_dipped
wird das Ergebnis des Ausdrucks unterschiedlich sein.(P.S.: Höchstwahrscheinlich hast du Recht. Profi heißt auch nur, dass man jemanden überzeugt hat, für die eigene Leistung zu bezahlen, egal ob diese etwas taugt oder nicht
)
-
Dein Vorschlag sieht vernünftig aus und das passt auch zur Fehlerbeschreibung.
Debuggen ist der Vorgang um Fehler in einem Programm zu finden.
Dann ist programmieren der Vorgang um Fehler in einem Programm zu machen.