Damit es etwas übersichtlicher wird, habe ich mal sämtliche Initialisierungsanweisungen in eine Funktion (besser Prozedur) gepackt und dann in main mit init(); aufgerufen. Leider hat das ein paar Bytes gekostet, obwohl überflüssig. Nimmt man das in kauf oder was?
Funktionen können auch ge-inline-t werden. Dann entfällt der Aufruf-Overhead. Der GCC macht das u.a. dann automatisch, wenn dein Haupt-Init und deine Sub-Inits alle in derselben .c-Datei stehen und die Sub-Inits alle mit static deklariert sind. Dann erhältst du das gleiche Ergebnis, als ob du allen Sub-Init-Code direkt ins Haupt-Init geschrieben hättest.
Wunderbar, wieder was gelernt. Danke!
Heinz T.K. schrieb: "Leider hat das ein paar Bytes gekostet, obwohl überflüssig. Nimmt man das in kauf oder was?" Bei der Programmierung wird meist ein Spagat zwischen Lesbarkeit (Wartbarkeit) und Codegröße gemacht. Die paar zusätzlichen Bytes für mehr Lesbarkeit sollten immer geopfert werden. Also keine Sorge, du hast schon das Richtige gemacht.
Heinz T.K. wrote: > Leider hat das ein paar Bytes gekostet, obwohl überflüssig. > Nimmt man das in kauf oder was? Wenn es unter 1% des gesamten Code kostet und die Lesbarkeit verbessert auf jeden Fall. Ab Einsparungen größer 10% kann man darüber nachdenken. Peter
Heute geht man normalerweise folgendermaßen vor: 1. Das Programm so schreiben, daß der Sourcecode möglichst übersichtlich und logisch aufgebaut ist. 2. Prüfen, ob du irgendwo die Anforderungen an Speicherverbrauch und Performance nicht einhalten kannst. Wenn alles o.k., bist du fertig, wenn nein, weiter. 3. Versuchen, herauszufinden, wo genau der größte Brocken (Speicher/Rechenzeit) verbraten wird. 4. Genau da optimieren. 5. goto 2. Am Anfang der Programmentwicklung vermeintliche "Optimierungen" anzustellen, geht nach hinten los: Der Sourcecode wird sowas von unwartbar, daß man ihn später zur Optimierung, da wo sie wirklich gebraucht wird, nicht mehr anfassen mag.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.