Präprozessor anweisung, nicht verwendete funktionen



  • Hallo,
    ich habe eine Frage zu Präprozessordefinitionen. Ich schreibe mir immer kleine Module mit verschiedenen Funktionen die ich aber nicht in jedem Programm verwende. Gibt es eine Möglichkeit eine Funktion so zu deklarieren das der Compiler automatisch erkennt das diese nicht verwendet wird und sie somit erst gar nicht einbindet?
    Mein Compiler lagert die nicht verwendeten Funktionen dummerweise in den Rammspeicher aus also reserviert Speicher dafür ob wohl sie niemals verwendet werden und es ist sehr lästig immer die Funktionen programmspezifisch aus zu kommentieren. Hatte gedacht es gibt evtl. Präprozessoranweisungen dafür aber ich wüsste jetzt nicht wie.

    Hat da jemand eine Lösung für?

    grüße mcreaper



  • dass der Compiler automatisch erkennt das diese nicht verwendet wird und sie somit erst gar nicht einbindet?

    Das erledigt der Linker.
    Bei dynamischen Libs kann er natuerlich nicht wissen, ob eine Funktion jemals aufgerufen wird.

    Mein Compiler lagert die nicht verwendeten Funktionen dummerweise in den Rammspeicher aus

    Und wo tut er dann die verwendeten Funktionen hin?



  • naja ich seh halt in der linkerlisting das er Ram und Codespeicher dafür reserviert, sprich unnötiger Speicher wird belegt.
    gibt es denn keine möglichkeit wie man dem Linker sagen kann das er den Aufruf kontrolliert?



  • mcreaper schrieb:

    naja ich seh halt in der linkerlisting das er Ram und Codespeicher dafür reserviert, sprich unnötiger Speicher wird belegt.
    gibt es denn keine möglichkeit wie man dem Linker sagen kann das er den Aufruf kontrolliert?

    ^^was issn das für'n linker? normalerweise lässt jeder linker unreferenzierte objekte weg.
    🙂



  • das ist de uvison compiler von keil, der macht das leider nicht. Und da man bei Microcontrollern nicht sonderlich viel platz hat, wäre es halt schön wenn man das irgentwie ausmaskieren könnte



  • µvision heisst die IDE. welchen compiler und linker benutzt du?
    die mir bekannten keil-tools muss man eigentlich zu so einem verhalten zwingen, wie du es beschreibst. normlerweise schmeissen die aus dem binary jedes bit raus, das nicht unbedingt benötigt wird.
    🙂


Log in to reply