Warum sollte man die header erst in der cpp-datei inkludieren?



  • Michael E. schrieb:

    Nö, die einzigehalbwegs nachvollziehbare Erklärung war IMHO die von pumuckl. Den Rest kann man doch nicht verstehen, wenn man den Grund noch nicht weiß.

    Danke, ich bin nämlich definitiv kein Troll.



  • damit es schneller compiliert.

    unwissenderwissbegieriger schrieb:

    ?! Klingt komisch, begründung?

    in meinem aktuellen programm habe ich 14 *.cpp-dateien und 13 *.h-dateien.
    das compilieren dauert 14 sekunden. (ok, mingw und lahmer rechner, aber die ergebnisse lassen sich übertragen auf schnelle rechner und schnele compiler, wenn man mehr dateien hat.)

    ich inkludiere sehr wenig. aber zwei cpp-dateien müssen dicke dinger inkludieren. ein dickes ding ist die <windows.h> und das andere <vector>.
    die beiden cpp-dateien, die dicke dinger inkludieren brauchen 11 sekunden und die 11 anderen cpp-dateien brauchen 3 sekunden. also sind bei mir die cpp-dateien, die dicke dinger inkludieren um den faktor 20 langsamer.

    stell dir vor, ich würde in jeder cpp-datei die <windows.h> inkludieren. ich müßte auf das ganze projekt nicht mehr wie bisher 14 sekunden sondern 71 sekunden warten.

    es gibt (eigene) header, die ich von jeder cpp-datei aus inkludiere. diese header dürfen die <windows.h>(fettester brocken überhaupt) nicht inkludieren und auch nicht die <iostream>(zweitfettester), weil sonst jede meiner cpp-dateien die dann über umweg auch inkludiert und alles langsam ist.

    ok, normalerweise lasse ich nicht alle cpp-dateien compilieren, es dauert also nicht 71 sekunden, normalerweise arbeite ich ja nur an einer cpp-datei und immer nach ein paar änderungen lasse ich compilieren, um zu sehen, ob ich mch wieder vertipp habe, und auch mal zum ausprobieren. aber auch da ist der unterschied zwischen 5 sekunden und 0,3sekunden etwas ganz erhebliches. ich mag nicht immer 5 sekunden warten, um die fehlermeldungen zu bekommen.


Anmelden zum Antworten