Latest web development tutorials

C-Header-Dateien

Die Header - Datei ist die Dateierweiterung.h, einschließlich einer C - Funktion Erklärungen und Makrodefinitionen, die von mehreren Quelldateien geteilt zitiert.Es gibt zwei Arten von Headern: Programmierer-Header-Dateien zu schreiben und Compiler kommt mit Header-Dateien.

Im Programm können Sie die Header - Dateien verwenden möchten, verwenden Sie die C Präprozessordirektive# include , um es zu verweisen.Wir haben bereits die Header - Dateistdio.h gesehen, die die Header - Datei, die mit dem Compiler kommt.

Zitat Header-Datei entspricht den Inhalt der Header-Datei zu kopieren, aber wir werden den Inhalt der Header-Datei direkt in der Quelldatei nicht kopieren, weil sie damit anfällig ist, auf Fehler vor allem, wenn das Programm aus einer Vielzahl von Quelldateien zusammengesetzt ist.

Eine einfache Praxis in C oder C ++ Programm, empfohlen, dass alle Konstanten, Makros, globale Variablen und Funktionsprototypen System in der Header-Datei geschrieben werden, wenn jederzeit auf diese Header beziehen benötigt.

Referenz-Syntax-Header-Dateien

Mit Vorverarbeitung Direktiven#include können Dateien Benutzer- und System - Header verweisen.Es hat die folgenden zwei Formen:

#include <file>

Diese Form wird verwendet, System-Header-Dateien zu verweisen. Es sucht nach einer Datei mit dem Namen Datei in der Standardliste der Systemverzeichnis. Wenn Sie den Quellcode kompilieren, können Sie die Optionen vor dem Pre-Verzeichnis der Liste -I.

#include "file"

Diese Form wird verwendet, um die Benutzer-Header-Dateien zu verweisen. Es sucht nach einer Datei mit dem Namen Datei im Verzeichnis der aktuellen Datei enthält. Wenn Sie den Quellcode kompilieren, können Sie die Optionen vor dem Pre-Verzeichnis der Liste -I.

Referenz Aktionen Header-Dateien

# include - Direktive weist der C - Präprozessor die angegebene Datei als Eingang zu sehen.Ausgabe des Vorprozessors enthält die Ausgabe , die generiert wurde, die referenzierten Textausgabedateien erzeugt und ausgegeben# include - Anweisung.Zum Beispiel, wenn Sie eine Header-Datei header.h haben, wie folgt:

char *test (void);

Und eine Header - Datei des Hauptprogrammsprogramm.cwie folgt mit:

int x;
#include "header.h"

int main (void)
{
   puts (test ());
}

Der Compiler wird das folgende Token-Stream zu sehen:

int x;
char *test (void);

int main (void)
{
   puts (test ());
}

eine Header-Datei Referenzen Nur

Wenn eine Header-Datei zweimal Bezug genommen wird, wird der Compiler den Inhalt der beiden Header-Dateien verarbeiten, die einen Fehler zu generieren. Um dies zu verhindern, ist die gängige Praxis, den gesamten Inhalt der Datei auf die bedingte Kompilierung ende Erklärungen, wie folgt:

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

Diese Struktur wird allgemein Wrapper#ifndef bezeichnet.Wenn wieder die Header-Datei verweist, ist die Bedingung falsch, weil HEADER_FILE definiert. In diesem Fall wird der Vorprozessor den gesamten Inhalt der Datei überspringen, wird der Compiler ignorieren.

Bedingte Zitat

Manchmal müssen Sie einen Verweis auf das Programm aus mehreren verschiedenen Header-Dateien auszuwählen. Zum Beispiel müssen Sie die Konfigurationsparameter auf verschiedenen Betriebssystemen zu spezifizieren. Sie können eine Reihe von Bedingungen verwenden, um dies zu erreichen, wie folgt:

#if SYSTEM_1
   # include "system_1.h"
#elif SYSTEM_2
   # include "system_2.h"
#elif SYSTEM_3
   ...
#endif

wenn die Header-Datei mehr Zeit jedoch zu tun, so sehr ungeeignet ist, verwenden Sie den Namen Präprozessormakros Header zu definieren. Dies isteine dynamische Referenz bezeichnet.Es ist nicht , wie der Name der Header - Datei# include direkten Parameter verwendet, müssen Sie nur ein Makro zu verwenden , um den Namen zu ersetzen:

 #define SYSTEM_H "system_1.h"
 ...
 #include SYSTEM_H

SYSTEM_H erweitert, der Präprozessor sieht system_1.h, wie sie ursprünglich als#include geschrieben.SYSTEM_H Makefile kann für Sie durch die Option -D definiert werden.