Was macht der Präprozessor/Precompiler genau?



  • Was macht der Präprozessor/Precompiler mit einer Anweisung wie

    #include <iostream>
    

    ganz genau? Was steht hinterher für den Compiler an dieser Stelle?



  • #include <iostream> wird durch den Inhalt <iostream> ersetzt (über den dann der Präprozessor auch noch läuft).



  • Was ist der Inhalt <iostream> eigentlich exakt? Entspricht das der Datei iostream.h? Wird #include <iostream> dann durch exakt diese Header-Datei ersetzt?



  • $ locate iostream|grep -v .h
    /opt/intel/compiler70/ia32/include/iostream
    /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/include/g++-v3/iostream
    /usr/include/stlport/iostream
    /usr/include/stlport/using/iostream
    /usr/include/stlport/wrap_std/iostream
    

    Es sind einfach nur Dateien. Allerdings nicht garantierterweise.



  • Was ist der Inhalt <iostream> eigentlich exakt?

    Ist abhängig von deiner konkreten Implementation.

    Entspricht das der Datei iostream.h?

    Nein. <iostream> und <iostream.h> sind zwei verschiedene Dinge. <iostream> muss nicht mal eine Datei sein.

    Wird #include <iostream> dann durch exakt diese Header-Datei ersetzt?

    Nein. Wie gesagt <iostream> muss nicht mal eine Datei sein. Ich habe allerdings bisher noch keine Implementation gesehen, wo <iostream> nicht eine Datei namens iostream war.



  • ich glaub beim IBM VisualAge Compiler ist das so


Anmelden zum Antworten