www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik math.h


Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie viel Speicher braucht das Einbinden der Lib math.h?
Muss ich zusätzlich noch ein Fliesskommapaket einbinden wenn ich
mit der Sinusfunktion arbeiten möchte?

Prozessor: MSP430

Vielen Dank

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
math.h ist eine Headerdatei, die belegt in einem compilierten Programm
exakt 0 (null) Bytes.

Werden in math.h deklarierte Funktionen verwendet, so wird der Compiler
allerdings versuchen, diese zum Programm dazuzulinken. Die verwendeten
Objektdateien befinden sich in der Regel in einer der zum Compiler
gehörenden Standardlibraries.
Die Verwendung der sinus-funktion legt den Gebrauch eines
Fließkommapaketes nahe; je nachdem, wie die Standardlibraries des
Compilers organisiert sind, wird dies automatisch vom Linker zum
Programm hinzugefügt, wenn Funktionen daraus verwendet werden.

Ob das so ist, kann man den Linkerfehlermeldungen bzw. deren Ausbleiben
entnehmen.

Befinden sich die Funktionen, die in math.h verwendet werden, nicht in
einer der Standardlibraries, so erkennt man dies an entsprechenden
Fehlermeldungen des Compilers; in dessen Dokumentation wird drinstehen,
welche Libraries dann noch gezielt zu linken sind (math.lib?).

Aus der Dateigröße so einer Library kann man nicht unbedingt daraus
schließen, wie sich das Linken auf die finale Objektcodegröße auswirkt;
ist doch eine Library potentiell die Sammlung vieler Objektdateien, aus
denen nur die benötigten extrahiert werden.
Der Compiler- oder Libraryhersteller entscheidet hier, wie granular
diese in der Library vorhanden sind.
Mit einem zum Compiler dazugehörenden Librarymanager kann man
potentiell herausfinden, wie so eine Library aufgebaut ist.

Wie groß nun die entsprechenden hinzugelinkten Dinge sind, lässt sich
ohne Kenntnis des Compilers kaum sagen.

Am einfachsten findet man sowas durch Ausprobieren und Betrachten der
erzeugten Map-Dateien, Linkerreports und finaler Objektcodegröße
heraus.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marcel: Welche IDE verwendest du?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.