Zweck von stdafx.h [duplicate]

Lesezeit: 2 Minuten

Benutzer-Avatar
zurück

Welchen Zweck hat die Datei stdafx.h und was ist damit gemeint vorkompilierte Header?

Benutzer-Avatar
Jörg Ferreira

stdafx.h ist eine Datei, die von Microsoft Visual Studio IDE-Assistenten generiert wird und sowohl das Standardsystem als auch projektspezifisch beschreibt enthalten Dateien, die häufig verwendet werden, sich aber kaum ändern. Kompatible Compiler (z. B. Visual C++ 6.0 und neuer) werden
Kompilieren Sie diese Datei vorab, um die Kompilierungszeiten insgesamt zu reduzieren.

Visual C++ kompiliert nichts vor dem
#include "stdafx.h" in der Quelldatei
es sei denn, die Kompilierungsoption
/Yu'stdafx.h' ist (standardmäßig) deaktiviert; Es wird davon ausgegangen, dass der gesamte Code in der Quelle bis einschließlich dieser Zeile bereits kompiliert ist.

http://en.wikipedia.org/wiki/Precompiled_header

  • Das bisschen über den Compiler, der alles vor dem ignoriert #include "stdafx.h" ist sehr wichtig. Daran habe ich mich schon einmal verbrannt.

    – Markieren Sie Lösegeld

    4. Juni 2010 um 16:52 Uhr

  • Ja, es ist sehr wichtig zu beachten, dass der Compiler die Include-Dateien vor stdafx.h ignoriert. Ich habe ungefähr einen halben Tag damit verbracht, mich zu fragen, was mit meinem Code passiert ist, der nach kleinen Änderungen zuvor gut funktioniert hat

    – evk1206

    17. Dezember 2015 um 8:31 Uhr

Benutzer-Avatar
Mark Lösegeld

Um die anderen hervorragenden Antworten zu erweitern:

stdafx.h ist die Datei, die alle häufig verwendeten Header für ein einzelnes Projekt enthält. Dazu gehören beispielsweise alle Windows-Definitionen. Da diese Datei so viel Zeug enthält, wird der Compiler bei der Verarbeitung etwas langsam. Indem er es vorkompiliert, kann der Compiler einen Großteil der Verarbeitung überspringen und es immer wieder wiederverwenden; Solange sich keine der darin enthaltenen Dateien ändert, muss sich auch das vorkompilierte Ergebnis nicht ändern.

Der Name stdafx.h ist nur eine Konvention. Sie könnten es leicht in etwas anderes umbenennen, wenn Sie alle Ihre Quellen so ändern, dass sie stattdessen die neue Datei enthalten.

Um die eigentliche vorkompilierte Headerdatei zu erzeugen, benötigen Sie eine Quelldatei im Projekt, die über spezielle Kompilierungsflags verfügt, um eine vorkompilierte Ausgabe zu erzeugen. Konventionell wird diese Datei benannt stdafx.cppund wenn Sie die Einstellungen für diese Quelldatei überprüfen, werden Sie sehen, wie sie sich unterscheidet.

Es wird normalerweise für den Namen vorkompilierter Header verwendet. Obwohl die Verwendung dieses genauen Namens nicht erforderlich ist, nur der Standard. Ich erkläre hier mehr über vorkompilierte Header in VC++ und g++.

Sie verwenden vorkompilierte Header für eine schnellere Kompilierung.

Die Idee ist, dass Sie jede Header-Datei, die sich nicht ändert, und die Sie in mehreren Quelldateien verwenden, in Ihren vorkompilierten Header einfügen. Dann muss der Compiler diese Header nicht für jede Kompilierungseinheit erneut verarbeiten.

Es ist ein vorkompilierter Headerum die Kompilierungszeiten zu verkürzen.

1013450cookie-checkZweck von stdafx.h [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy