main Funktion
-
314159265358979 schrieb:
Willst du wissen, wie du viele case-Blöcke vermeiden kannst? Oder wie lautet deine Frage?
Er möchte Code in Funktionen auslagern, und zwar allein für die Übersichtlichkeit. Aber er hat gelernt, daß man Funktionen nur baut, wenn etwas mehrmals aufgerufen wird. Schade. Man könnte doch so schön auch damit Ordnung machen.
Bashar hat erklärt, daß er da einem Mißverständnis unterlegen ist. Man darf durchaus zu verschiedensten Zwecken Funktionen bauen.
Ich ergänze: Die Ordnung und das Kleinmachen der main() ist auf jeden Fall einer der Wichtigsten Gründe überhaupt, um Funktionen zu basteln.
-
Mein Dozent legte im ersten Semester direkt von Anfang an fest, dass keine Funktion länger als eine Bildschirmlänge lang sein darf.
Funktionen sind dazu da jeweils eine Aufgabe zu übernehmen.
Damit Funktionen von anfang an potentiell wiederverwendbar sind, sollte man diese auch versuchen so zu gestalten. Sprich, wenn du ein Menü ausgibst, dann solltest du eine Funktion für das Menü bauen und die einzelnen Menüpunkte nurnoch über die Parameter übergeben.
Nicht immer ist die Wiederverwendbarkeit von Funktionen zu gewährleisten. Aber wie schon gesagt, Funktionen sind dazu da eine Aufgabe zu übernehmen, wenn möglich nicht mehr.
Z.B. könnten die jeweils individuellen Anweisungen deiner Switch-Case ausgelagert werden in Funktionen.
-
welche Vorteile hat es denn wenn ich alles in Funktion auslagere selbst wenn diese nur dieses einmal Verwendung finden. Was bringt es wenn die main Funktion klein ist ? Übersichtlichkeit kann man doch auch mit Kommentaren schaffen.
-
Poste doch mal bitte deine main-Funktion.

-
Holymagic schrieb:
..., dass keine Funktion länger als eine Bildschirmlänge lang sein darf.
Schwerer Schwachsinn.
Sollte klar sein. Ist zu individuell. Krampfhaft aufteilen ist ziemlich sehr dumm.
-
blurry333 schrieb:
Übersichtlichkeit kann man doch auch mit Kommentaren schaffen.
Warum denn zusätzlich Kommetare schreiben/pflegen und vor allem lesen lassen, wenn man einfach den Code so schreiben könnte, dass er sich selbst erklärt?
int main() { // ... // An dieser Stelle wird jetzt die Länge üver Puffer ausgerechnet double x = t *z*e / sqrt(asd); for(int i = 0; i < 100 % d/asd * xyz; ++i, ++asd) { // Hier wird dies und das getan // } double l = x > 100 ? ln(42*x) : sqrt(x); } // vs. int main() { // ... double l = LaengeUberPuffer(); }Viele Kommentare sind nicht unbedingt ein Zeichen für einen guten Programmierstil.
-
main ist für das System auch nur eine Funktion, nämlich die Einstiegsfunktion einer exe. Man tut gut daran, main auf das minimalste zu beschränken und alles auf weitere (übersichtliche) Funktionen zu verteilen, selbst wenn sie nur einmal während eines Programmlaufs gebraucht werden. Das erhöht auch den Wert zur Wiederverwendung bei anderen Projekten, zur Austauschbarkeit und vor allem zur Fehlersuche und Erweiterung.
Die Frage geht schon über in Programmierstil und Programmdesign. Und das ist ein nie endendes eigenes Thema!
-
Warum hilft es bei der fehlersuche ?
-
blurry333 schrieb:
welche Vorteile hat es denn wenn ich alles in Funktion auslagere selbst wenn diese nur dieses einmal Verwendung finden.
Was spricht denn gegen Funktionen als Werkzeug zur Uebersichtlichkeit?
-
blurry333 schrieb:
Warum hilft es bei der fehlersuche ?
Geht auch bereits in Richtung Programmierstil. Mit zunehmender Erfahrung hat man viele unkritische und wenige kritische Funktionen bei einer Programmentwicklung. Die unkritischen betrachtet man nicht weiter und kann sich auf deutlich weniger Sourcetext konzentrieren. Aber das ist nicht alles. Im Idealfall weiss der Programmierer auch ohne Debug sofort, wo er suchen muss.