Latest web development tutorials

Pliki nagłówkowe C

Plik nagłówkowy.h jest rozszerzenie pliku, wtym deklaracji funkcji C i definicji makr, cytowany wspólne wielu plików źródłowych. Istnieją dwa typy nagłówków: programistów do pisania i pliki nagłówkowe kompilatora jest wyposażony w plikach nagłówkowych.

W programie, który chcesz użyć plików nagłówkowych, użyj C dyrektywę preprocesora#include odnieść się do niego.Widzieliśmy już plik nagłówkowystdio.h, który jest plik nagłówka, który pochodzi z kompilatora.

Plik Cytat nagłówek jest równoważna skopiować zawartość pliku nagłówka, ale nie będzie skopiować zawartość pliku nagłówka bezpośrednio w pliku źródłowym, ponieważ ten sposób jest podatny na błędy, zwłaszcza gdy program składa się z wielu plików źródłowych.

Prosta praktyka w C lub C ++ programu, zaleca się, aby wszystkie stałe, makra, zmienne globalne i prototypy funkcji systemu zapisane w pliku nagłówkowym w razie potrzeby w każdej chwili odwołać się do tych nagłówków.

Pliki nagłówkowe składniowe referencyjny

Korzystanie z dyrektyw przeróbinclude może odwoływać użytkownika i nagłówka systemu plików.Posiada dwie następujące formy:

#include <file>

Formularz ten jest wykorzystywany do odniesienia nagłówku plików systemowych. Poszukuje pliku o nazwie pliku w standardowym wykazie katalogu systemowym. Podczas kompilacji kodu źródłowego, można -I opcje przed katalogu wstępnej listy.

#include "file"

Formularz ten służy do odwoływania się do plików nagłówkowych użytkownika. To wyszukuje plik o nazwie pliku w katalogu zawierającego bieżący plik. Podczas kompilacji kodu źródłowego, można -I opcje przed katalogu wstępnej listy.

Działania referencyjne header pliki

#include Dyrektywa nakazuje preprocesora C przeglądać określony plik jako wejście.Wyjście preprocesor zawiera wyjście, które zostały wygenerowane, pliki wyjściowe tekstowych odwoływać generowane i instrukcji wyjścia#include.Na przykład, jeśli masz header.h pliku nagłówka, co następuje:

char *test (void);

A nagłówek pliku przy użyciu głównegoprogram.c programu,co następuje:

int x;
#include "header.h"

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

Kompilator patrz poniższy tokenu strumienia:

int x;
char *test (void);

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

Tylko jeden plik header referencje

Jeśli plik nagłówka jest wymieniony dwukrotnie, kompilator będzie przetwarzać zawartość dwóch plików nagłówkowych, które będą generować błąd. Aby temu zapobiec, standardową praktyką jest umieścić całą zawartość pliku w sprawie warunkowego sprawozdania kompilacji, co następuje:

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

Struktura ta jest powszechnie określany otoki#ifndef.Po ponownym przedstawieniu plik nagłówka, warunek nie jest spełniony, ponieważ HEADER_FILE zdefiniowane. W tym przypadku, preprocesor pomija całą zawartość pliku, kompilator będzie go zignorować.

Warunkowe cytat

Czasami trzeba wybrać odniesienie do programu z kilku różnych plików nagłówkowych. Na przykład, trzeba określić parametry konfiguracyjne na różnych systemów operacyjnych. Można użyć szereg warunków do osiągnięcia tego celu, co następuje:

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

Jednakże, jeśli plik nagłówka więcej czasu, aby to zrobić jest bardzo niestosowne, użyj makra preprocesora nazwa zdefiniować nagłówki. To się nazywaodwołanie warunkowego.To nie jest używana jako nazwa pliku nagłówka#include bezpośredniego parametru, trzeba tylko użyć makra zastąpić nazwę:

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

SYSTEM_H rozszerza, preprocesor wygląda system_1.h, jak pierwotnie napisany jako#include.SYSTEM_H Makefile może być określona przez opcję -D dla Ciebie.