Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C - Header-Dateien

Eine Header-Datei ist eine Datei mit der Erweiterung .h die C-Funktionsdeklarationen und Makrodefinitionen enthält, die von mehreren Quelldateien gemeinsam genutzt werden sollen. Es gibt zwei Arten von Header-Dateien:die Dateien, die der Programmierer schreibt, und die Dateien, die mit Ihrem Compiler geliefert werden.

Sie fordern die Verwendung einer Header-Datei in Ihrem Programm an, indem Sie sie mit der C-Vorverarbeitungsanweisung #include einschließen , wie Sie die Aufnahme von stdio.h gesehen haben Header-Datei, die mit Ihrem Compiler geliefert wird.

Das Einbinden einer Header-Datei ist gleichbedeutend mit dem Kopieren des Inhalts der Header-Datei, aber wir tun es nicht, weil es fehleranfällig ist und es keine gute Idee ist, den Inhalt einer Header-Datei in die Quelldateien zu kopieren, insbesondere wenn wir mehrere Quelldateien in einem Programm haben.

Eine einfache Praxis in C- oder C++-Programmen besteht darin, dass wir alle Konstanten, Makros, systemweiten globalen Variablen und Funktionsprototypen in den Header-Dateien behalten und diese Header-Datei dort einfügen, wo sie benötigt wird.

Syntax einschließen

Sowohl die Benutzer- als auch die System-Header-Dateien werden mit der Vorverarbeitungsanweisung #include eingebunden . Es hat die folgenden zwei Formen −

#include <file>

Dieses Formular wird für System-Header-Dateien verwendet. Es sucht nach einer Datei mit dem Namen „Datei“ in einer Standardliste von Systemverzeichnissen. Sie können dieser Liste Verzeichnisse mit der Option -I voranstellen, während Sie Ihren Quellcode kompilieren.

#include "file"

Dieses Formular wird für Header-Dateien Ihres eigenen Programms verwendet. Es sucht nach einer Datei namens 'file' in dem Verzeichnis, das die aktuelle Datei enthält. Sie können dieser Liste Verzeichnisse mit der Option -I voranstellen, während Sie Ihren Quellcode kompilieren.

Operation einschließen

Das #include Direktive funktioniert, indem sie den C-Präprozessor anweist, die angegebene Datei als Eingabe zu scannen, bevor er mit dem Rest der aktuellen Quelldatei fortfährt. Die Ausgabe des Präprozessors enthält die bereits generierte Ausgabe, gefolgt von der Ausgabe, die sich aus der eingebundenen Datei ergibt, gefolgt von der Ausgabe, die aus dem Text nach dem #include stammt Richtlinie. Wenn Sie beispielsweise eine Header-Datei header.h wie folgt haben:−

char *test (void);

und ein Hauptprogramm namens program.c die die Header-Datei verwendet, wie folgt:−

int x;
#include "header.h"

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

Der Compiler sieht denselben Token-Stream, als würde er program.c lesen.

int x;
char *test (void);

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

Einmalige Header

Wenn eine Header-Datei zweimal eingebunden wird, verarbeitet der Compiler ihren Inhalt zweimal, was zu einem Fehler führt. Die Standardmethode, dies zu verhindern, besteht darin, den gesamten tatsächlichen Inhalt der Datei in eine Bedingung einzuschließen, wie hier −

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

Dieses Konstrukt ist allgemein als Wrapper #ifndef bekannt . Wenn der Header erneut eingefügt wird, ist die Bedingung falsch, da HEADER_FILE definiert ist. Der Präprozessor überspringt den gesamten Inhalt der Datei und der Compiler sieht ihn nicht zweimal.

Berechnete Includes

Manchmal ist es notwendig, eine der mehreren verschiedenen Header-Dateien auszuwählen, die in Ihr Programm aufgenommen werden sollen. Beispielsweise können sie Konfigurationsparameter angeben, die auf verschiedenen Arten von Betriebssystemen verwendet werden sollen. Sie könnten dies mit einer Reihe von Bedingungen wie folgt tun:−

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

Aber wenn es wächst, wird es langweilig, stattdessen bietet der Präprozessor die Möglichkeit, ein Makro für den Header-Namen zu verwenden. Dies wird als berechnetes Include bezeichnet . Anstatt einen Header-Namen als direktes Argument von #include zu schreiben , geben Sie dort einfach einen Makronamen ein −

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

SYSTEM_H wird erweitert, und der Präprozessor sucht nach system_1.h, als wäre das #include war ursprünglich so geschrieben. SYSTEM_H könnte von Ihrem Makefile mit einer Option -D definiert werden.


C Sprache

  1. C Dateiverwaltung
  2. Python-Datei-I/O
  3. Java-Dateiklasse
  4. Eine Einführung in STL-Dateien
  5. Verilog-Datei-IO-Operationen
  6. C - Datei-E/A
  7. C++-Dateien und -Streams
  8. C# - Datei-E/A
  9. Python - Datei-I/O
  10. Was ist eine dreieckige Datei?