hab mal einfache fragen die mich interessieren würden. Vielleicht weiß jemand ja antworten.
Beim Kompilieren, mir kommt es vor dass der Kompiler von unten her anfängt? Hab da mal n Fehler oben und ganz unten drin gehabt, und der untere wurde als erstes erkannt. Stimmt das?
bei sowas, die while wird bearbeitet, bis bt available größer als Null wird, dann ist die If wahr. Dort drin steht aber ein return. Meine frage nun, springt der Controller dann sofort bei return zurück oder macht er die If fertig, heisst macht er auch die Flags auf false oder springt er direkt raus sobald wo return steht?
Müsste ich dann anders schreiben ? Erst flags setzen und dann return?
Franz_grundi:
Beim Kompilieren, mir kommt es vor dass der Kompiler von unten her anfängt? Hab da mal n Fehler oben und ganz unten drin gehabt, und der untere wurde als erstes erkannt. Stimmt das?
Wenn Du in der IDE die ausführliche Ausgabe beim Kompilieren einschaltest, siehst Du, daß die Programmerstellung in vielen Schritten durchgeführt wird. Wenn ein Fehler oder eine Warnung erkannt wird, dann erfolgt eine Ausgabe. Was der Kompiler selbst genau tut, weiß ich leider nicht.
Franz_grundi:
... springt er direkt raus sobald wo return steht?
Ja, was dahinter steht, wird ignoriert. Eigentlich müßte es dazu eine Warnung geben, wenn Du die Warnungen in der IDE eingeschaltest hast.
Beim Kompilieren, mir kommt es vor dass der Kompiler von unten her anfängt?
Glaub ich eher nicht.
C / C++ verlangt, dass Klassen, Funktionen, Variablen deklariert werden, bevor (von oben nach unten gelesen) sie verwendet werden. Das spricht dafür, dass der Compiler den Quellcode von oben nach unten abarbeitet. Und zunächst fehlende #include Dateien (von oben/außen nach unten/innen) anmeckert.
Kann dann natürlich immer noch sein, dass der Compiler in mehreren Durchläufen durch den Quellcode und seine Zwischenergebnisse geht, und so einen "einfachen" Fehler weiter unten zuerst entdeckt, statt etwas komplizierteres weiter oben zuerst anzumeckern. Außerdem ist es dem Compiler freigestellt (er kann evtl. gar nicht anders), eine fehlerhafte Kompilation abzubrechen und nicht alle Fehler sofort zu melden.
Franz_grundi:
Beim Kompilieren, mir kommt es vor dass der Kompiler von unten her anfängt? Hab da mal n Fehler oben und ganz unten drin gehabt, und der untere wurde als erstes erkannt. Stimmt das?
Hallo Franz,
das kann ich nicht nachvollziehen. Bei mir werden Fehler weiter vorn im Programm als erstes erkannt. Es kommt aber schonmal vor, dass die IDE zuerst die weiter hinten gefundenen Fehler markiert. Die Reihenfolge im unteren Fensterteil ( in roter Schrift ) ist aber immer von oben nach unten. Wie michael_x schon erwähnte müssen alle Deklarationen vor der Erstverwendung erfolgen. Auch der Precompiler ( der alle Zeilen, die mit '#' anfange #define, #include... bearbeitet ) arbeitet von oben nach unten. Es werden aber nicht immer alle Fehler auf einmal erkannt, da der Compiler bei bestimmten Fehlern abbricht.
Franz_grundi:
Beim Kompilieren, mir kommt es vor dass der Kompiler von unten her anfängt? Hab da mal n Fehler oben und ganz unten drin gehabt, und der untere wurde als erstes erkannt. Stimmt das?
Mit den Markierungen fehlerhafter Stellen im Editor ist es wie mit der Smilie-Automatik hier im Forum: Meiner Meinung nach der letzte Dreck. Das einzig Wahre ist, die Meldungen von oben nach unten abzuarbeiten und nach jeder Änderung neu zu compilieren. Die Highlighting-Funktion dient wohl mehr der Irreführung.