math.h

Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.