Moin, in wieweit verschlechtert sich ein Funktionscode, wenn man Funktionen erstellt, die nichts anderes tun, als init_Zustände herzustellen? Bsp.-Fkt.: void init_portpin(void) { P4DIR |= BIT0; P4OUT &=~ BIT0; } Wird der Speicheraufwand und die Codeausführung (stark) negativ beeinflusst? mfg
Init schrieb: > Bsp.-Fkt.: > > void init_portpin(void) > { > P4DIR |= BIT0; > P4OUT &=~ BIT0; > } > > > Wird der Speicheraufwand und die Codeausführung (stark) negativ > beeinflusst? Wie oft rufst du denn die Funktion auf? Da es sich um eine init Funktion handelt, wird die ja wohl nur ein einziges mal ganz am Anfang aufgerufen. Ob dein µC jetzt nach dem Einschalten 2 Hunderstelsekunden braucht, bis er einsatzfähig ist, oder deren 3 Hunderstelsekunden, wird wohl in den allerwendigsten Fällen irgendeine Rolle spielen. Überlass es deinem Compiler, sich über derartige Low-Level Mikrooptimierungen den Kopf zu zerbrechen. Wenn es sich lohnt, die Funktion zu inlinen, dann wird das dein Compiler machen (wenn du ihm die Möglichkeit dazu gibst). Kümmere du dich lieber um vernünftige Algorithmen, das lohnt viel mehr, als sich über solchen Kleinkram ohne Not den Kopf zu zerbrechen. Dein Hauptziel ist es in erster Linie übersichtlichen Code zu schreiben. Wenn du denkst, dass derartige Funktionen die Übersicht erhöhen, dann mach das.
Karl Heinz Buchegger schrieb: > Kümmere du dich lieber um vernünftige > Algorithmen, das lohnt viel mehr, als sich über solchen Kleinkram ohne > Not den Kopf zu zerbrechen. > Dein Hauptziel ist es in erster Linie übersichtlichen Code zu schreiben. Stimmt 100%! Nun zu deiner Frage: Es gibt Funktionen: - kleine Funktion, selten aufgerufen - kleine Funktion, sehr häufig aufgerufen kleine Funktion (Cycles: Aufruf/Rücksprung > Cycles in der Funktion) werden je nach Compiler-Option (Size oder Speed) als Funktion (weniger Speicherverbrauch, langsamere Ausführung wegen Aufruf & Rücksrpung) oder direkt ins Hauptprogramm (größer Speicherverbrauch) eingefügt. Daher sollte man irgendwelche Optimierungsansätze vermeiden. Es bringt Dir praktisch nichts - große Funktion (Algorithmen), wenig/oft aufgerufen -> Funktion lohnt sich immer (Übersichtlichkeit, Wartung, etc.) -> viel Optimierungspotential, z.B. Funktion in kleinere Funktionen aufteilen, und nur benötigte Funktionen für das jeweilige Problem aufrufen (Programm Struktur/ Algorithmen optimieren)
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.