Freigeben über


#include-Direktive (C/C++)

Die #include-Direktiven geben den Präprozessor mit dem Inhalt einer angegebenen Datei zu behandeln, als wären diese im Inhalt an der Stelle Quellprogramm aufgetreten wäre, in dem die Direktive angezeigt werden.

#include  "path-spec"
#include  <path-spec>

Hinweise

Sie können die konstanten und Makrodefinitionen in Dateien organisieren und #include-Direktive verwenden, um diese Definitionen jeder Quelldatei hinzuzufügen.Includedateien sind auch zum Integrieren von Deklarationen von externen Variablen und komplexe Datentypen sinnvoll.Sie müssen die Typen in einer Includedatei nur einmal definieren und benennen, die zu diesem Zweck erstellt wurde.

PATH SPEC ist ein Dateiname, der optional eine Spezifikation Verzeichnis vorangestellt wird.Der Dateiname muss eine vorhandene Datei benennen.Die Syntax PATH SPECs hängt vom Betriebssystem ab, auf dem das Programm kompiliert wird.

Informationen zum Installieren von Assemblys in C-Format Anwendung C++-Compiler verweist, die mit /clrkompiliert wird, finden Sie unter #using.

Beide Syntax formulare Ersetzung dieser Direktive bewirkt durch den gesamten Inhalt der angegebenen Includedatei.Der Unterschied zwischen den beiden Formen ist die Reihenfolge, in der der Präprozessor für Headerdateien vorhanden, wenn der Pfad unvollständig angegeben wird.In der folgenden Tabelle werden die Unterschiede zwischen den beiden Formulare Syntax an:

Syntax-Formular

Aktion

Form mit Anführungszeichen

Die Präprozessor sucht nach Includedateien in der folgenden Reihenfolge:

  1. Im selben Verzeichnis wie die Datei #include , die die Anweisung enthält.

  2. In allen Verzeichnissen zuvor geöffneten Dateien in umgekehrter Reihenfolge, in der sie geöffnet wurden.Die Suche wird im Verzeichnis der Includedatei, die zuletzt geöffnet wurde vom Verzeichnis ab und fährt der Includedatei fortgesetzt, die zuerst geöffnet wurde.

  3. jede, angegeben durch die dem Pfad /I-.

  4. Pfade, die von der INCLUDE-Umgebungsvariablen angegeben.

Form der spitzen Klammer

Die Präprozessor sucht nach Includedateien in der folgenden Reihenfolge:

  1. jede, angegeben durch die dem Pfad /I-.

  2. Wenn in der Befehlszeile kompilieren, an den Pfaden, die von der INCLUDE-Umgebungsvariablen angegeben werden.

Der Präprozessor beendet, sobald er zum Suchen nach einer Datei mit dem angegebenen Namen gesucht werden soll.Wenn Sie eine vollständige, eindeutige Pfadangabe für die Includedatei zwischen doppelten Anführungszeichen („„) angeben, werden nur die Präprozessorausgabe suchen, die Pfadangabe und die standardmäßige verzeichnisse ignoriert.

Wenn der Dateiname in doppelten Anführungszeichen eingeschlossen ist, eine unvollständige Pfadangabe ist, sucht der Präprozessor zunächst das Verzeichnis der Datei „Items“.Eine übergeordnete Datei ist die Datei, die die #include-Direktive enthält.Wenn Sie beispielsweise eine Datei einschließen, die file2 innerhalb einer Datei, die file1file1 ist, wird die Elemente Datei.

Includedateien können geschachtelt werden. „ Das heißt, können #include-Direktive in einer Datei, die von einer anderen #include-Direktive angegeben ist.Beispielsweise könnte file2oben file3einschließen.In diesem Fall würde weiterhin file1 das übergeordnete Element von file2 sondern würde das übergeordnete Element der zweiten Ebene „von“ file3sein.

Wenn Includedateien und geschachtelt werden, wenn Kompilieren von der Befehlszeile, startet das Verzeichnis durchsuchen mit den Verzeichnissen der übergeordneten Datei und fährt dann die Verzeichnisse aller Dateien der zweiten übergeordneten Ebene fortgesetzt.Daher beginnt die Suche relativ zum Verzeichnis, das die Quelle enthält, die gerade verarbeitet wird.Wenn die Datei nicht gefunden wird, wird die Suche auf Verzeichnisse, die durch die /I- angegeben werden.Schließlich werden die Verzeichnisse, die von der INCLUDE-Umgebungsvariablen angegeben werden, enthalten.

Aus der Entwicklungsumgebung wird die INCLUDE-Umgebungsvariable ignoriert.Um die Verzeichnisse festzulegen, die für Includedateien durchsucht werden (diese Informationen auch in der Umgebungsvariablen LIB angewendet.) finden Sie unter VC++-Verzeichnisse, Projekte, Dialogfeld " Optionen ".

Im folgenden Beispiel wird inklusion Datei mithilfe der spitzen Klammern an:

#include <stdio.h>

In diesem Beispiel wird der Inhalt der Datei hinzu, die STDIO.H dem Quellprogramm benannt ist.Die spitzen Klammern veranlassen die Präprozessorausgabe in die Verzeichnisse zu suchen, die von der INCLUDE-Umgebungsvariablen für STDIO.H angegeben werden, nachdem sie die Verzeichnisse gefunden haben, die von der /I- angegeben werden.

Im folgenden Beispiel wird inklusion Datei mithilfe der Form mit Anführungszeichen auf:

#include "defs.h"

In diesem Beispiel wird der Inhalt der Datei hinzu, die von DEFS.H dem Quellprogramm angegeben wird.Die doppelten Anführungszeichen bedeuten, dass der Präprozessor das Verzeichnis durchsucht, das zuerst die Elemente Quelldatei enthält.

Schachtelung von Includedateien kann bis zu 10 Ebenen fortgesetzt werden soll.Wenn geschachtelte #include verarbeitet wird, wird der Präprozessor weiterhin die einschließende Includedatei in die ursprüngliche Quelldatei eingefügt werden soll.

Microsoft-spezifisch

Um includable Quelldateien zu lokalisieren, sucht der Präprozessor zuerst die Verzeichnisse, die durch die /I- angegeben werden.Wenn die Option /I- nicht vorhanden ist oder fehlschlägt, verwendet der Präprozessor die INCLUDE-Umgebungsvariable, um alle Dateien in spitzen Klammern zu suchen.Die INCLUDE-Umgebungsvariable und die /I- können mehrere Pfade enthalten, die durch Semikolons (;) getrennt werden.Wenn mehr als ein Verzeichnis als Teil der /I- oder innerhalb der INCLUDE-Umgebungsvariablen wird, sucht der Präprozessor diese in der Reihenfolge, in der sie angegeben werden.

Ein Beispiel ist der Befehl

CL /ID:\MSVC\INCLUDE MYPROG.C

veranlasst die Präprozessorausgabe in das Verzeichnis D:\MSVC\INCLUDE. STDIO.H z. B. nach Includedateien gesucht werden soll.Die Befehle

SET INCLUDE=D:\MSVC\INCLUDE
CL MYPROG.C

Sie haben die gleiche Wirkung.Wenn beide Sätze Suche fehlgeschlagen ist, wird ein tödlicher Compilerfehler generiert.

Wenn der Dateiname ausschließlich für eine Includedatei mit einem Pfad angegeben wird, der einen Doppelpunkt (z. B. F:\MSVC\SPECIAL\INCL\TEST.H) einschließt, folgt der Präprozessor dem Pfad.

Für die Dateien enthalten, die als #include **„PATH SPEC„**angegeben sind, startet das Verzeichnis durchsuchen mit dem Verzeichnis der übergeordneten Datei und fährt dann die Verzeichnisse aller Dateien der zweiten übergeordneten Ebene fortgesetzt.Daher beginnt die Suche relativ zum Verzeichnis, das die Quelldatei enthält, die die #include-Direktive enthält, die verarbeitet werden.Wenn keine Datei der zweiten übergeordneten Ebene vorhanden ist und die Datei nicht gefunden wurde, wird die Suche fortgesetzt, als ob der Dateiname in spitzen Klammern eingeschlossen wurden.

BEENDEN Sie Microsoft-Besonderen

Siehe auch

Referenz

Präprozessordirektiven