Forum: Compiler & IDEs Programm der Übersichtlichkeit halber in Funktionen ordnen versus Programmspeicher


von Heinz T.K. (Gast)


Lesenswert?

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?

von yalu (Gast)


Lesenswert?

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.

von Heinz T.K. (Gast)


Lesenswert?

Wunderbar, wieder was gelernt. Danke!

von gast (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von der mechatroniker (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.