Was passiert bei vergessener Header-Datei



  • Hi,
    hab da ne Frage:

    wenn man jetzt vergisst, z.b. bei verwendeter sqrt() - Funktion die Header-Datei <math.h> einzubinden, und dann den wert z.b. von sqrt(2.0) ausgeben lässt, dann kommt ja ein falsches ergebnis (logischerweise) raus. aber warum kommt überhaupt ein ergebnis raus und warum die 1073742463.00 ?

    Danke im Voraus

    MastaZulu



  • Ich behaupte mal, dass sich das gar nicht kompilieren lässt, ausser du hast irgendwo ein Makro oder ähnliche Sachen definiert, die das ganze trotzdem kompilieren lassen.



  • Du kannst auch Funktionen aufrufen, die nicht deklariert sind. Der Compiler vermutet dann, daß alle Typen, die die Funktion übergeben bekommt oder zurückgibt Integer sind ('implicit declaration' ist das Suchwort).

    Ich bin mir gerade nicht sicher, ob das in C99 anders ist, aber wenigstens ist es ziemlich hässlich.



  • Daniel E. schrieb:

    Ich bin mir gerade nicht sicher, ob das in C99 anders ist, aber wenigstens ist es ziemlich hässlich.

    In C99 hast du zwingend Prototypen, da kann das nicht passieren.


Anmelden zum Antworten