Von hier heißt es:
Für # include "filename" sucht der Präprozessor gleich Verzeichnis als die Datei, die die Direktive enthält. Diese Methode ist wird normalerweise verwendet, um vom Programmierer definierte Header-Dateien einzuschließen.
Für # schließen Sie die Präprozessor-Suche in einer Implementierung ein abhängige Weise, normalerweise in Suchverzeichnissen, die von der Compiler / IDE. Diese Methode wird normalerweise verwendet, um die Standardbibliothek einzuschließen Header-Dateien.
Während dieser Wiki-Link darauf hinweist, dass stdafx.h
eine Header-Datei ist, die von% co_de vordefiniert wurde %
stdafx.h ist eine Datei, die von Microsoft Visual Studio IDE-Assistenten generiert wird. Dies beschreibt sowohl Standardsystem- als auch projektspezifische Include-Dateien die häufig verwendet werden, sich aber kaum ändern.
Kompatible Compiler (zum Beispiel Visual C ++ 6.0 und neuer) Diese Datei vorkompilieren, um die Gesamtkompilierzeit zu reduzieren. Visual C ++ wird Kompilieren Sie nichts vor dem # include "stdafx.h" in der Quelle Datei, es sei denn, die Kompilieroption /Yu'stdafx.h 'ist deaktiviert (durch Standard); es nimmt den gesamten Code in der Quelle bis einschließlich auf Zeile ist bereits kompiliert.
Der AFX in stdafx.h steht für Application Framework eXtensions. AFX war die ursprüngliche Abkürzung für die Microsoft Foundation Classes (MFC). Während der Name stdafx.h standardmäßig verwendet wird, können Projekte Geben Sie einen alternativen Namen an.
Dann
Warum verwenden wir #include visual studio IDE
anstelle von "stdafx.h"
?
Ein stdafx.h
, stdafx.cpp
-Paar wird von VS aus einer Vorlage generiert. Es befindet sich in demselben Verzeichnis, in dem der Rest der Dateien endet. Sie werden es wahrscheinlich am Ende für Ihr Projekt ändern. Daher verwenden wir ""
anstelle von <>
genau aus dem Grund, dass es im selben Verzeichnis liegt wie das erste Zitat.
Weil stdafx.h
für jedes Projekt unterschiedlich ist. Wie Sie angegeben haben, sucht #include ""
den Pfad des aktuellen Projekts, und hier befindet sich stdafx.h
.
Die Verwendung von #include <stdafx.h>
wäre ein großer Fehler, weil er sich im Bibliothekspfad befinden müsste (wo sich alle Header der Standardbibliothek befinden). Dies würde bedeuten, dass Sie es nicht ändern sollten oder dass es immer gleich bleibt, aber es ist nie das gleiche für verschiedene Projekte.
Obwohl es von Visual Studio generiert wird, ist es also projektspezifisch und nicht für alle Projekte.
Im Allgemeinen ist die Syntax #include <name>
für eine gegebene Include-Datei name.h reserviert für die Standardbibliotheken , während #include "name.h"
für benutzerdefinierte Dateien verwendet wird. Dort könnte "Benutzer" jeden Entwickler bedeuten, der nicht standardmäßige Funktionen implementiert, etwa für ein bestimmtes Compiler-Paket.
Dementsprechend sucht der Präprozessor nach den Include-Dateien, die den geeigneten Pfaden folgen, die durch die Systemeinstellungen vorgegeben sind. Beachten Sie nicht nur den Unterschied zwischen Klammern und Anführungszeichen, sondern auch die unterschiedliche Verwendung der Erweiterung * .h.
Tags und Links c++ visual-studio-2010 include header-files directive