Latest web development tutorials

file di intestazione C

Il file di intestazione è l'estensione del file.h, tra cui una dichiarazioni di funzione C e definizioni di macro, citato condiviso da più file di origine.Ci sono due tipi di intestazioni: programmatori di scrivere i file di intestazione e compilatore includono file header.

Nel programma che si desidera utilizzare i file di intestazione, utilizzare la direttiva# include preprocessore C per riferirsi ad esso.Abbiamo già visto il file di intestazionestdio.h, che è il file di intestazione che viene fornito con il compilatore.

file di intestazione citazione è equivalente a copiare il contenuto del file di intestazione, ma non ci sarà copiare il contenuto del file di intestazione direttamente nel file di origine, perché così facendo è soggetto ad errori, soprattutto quando il programma è composto da una pluralità di file di origine.

Una semplice pratica nel programma C o C ++, raccomanda che tutte le costanti, macro variabili globali e prototipi funzionali di sistema scritto nel file di intestazione quando necessario in qualsiasi momento, fare riferimento a queste intestazioni.

file di intestazione di sintassi di riferimento

Utilizzando direttive al preprocessore#include possono fare riferimento a file degli utenti e di intestazione di sistema.Ha i seguenti due forme:

#include <file>

Questo modulo è utilizzato per fare riferimento i file di intestazione di sistema. Si cerca un file file di nome nella lista standard di directory di sistema. Quando si compila il codice sorgente, è possibile -i opzioni prima di directory pre l'elenco.

#include "file"

Questo modulo è utilizzato per fare riferimento ai file di intestazione utente. Si cerca un file denominato nella directory che contiene il file corrente. Quando si compila il codice sorgente, è possibile -i opzioni prima di directory pre l'elenco.

azioni referenziale File di intestazione

direttiva#include indica al preprocessore C sfogliare il file specificato come input.Output del preprocessore contiene l'output che è stato generato, i file di output di testo si fa riferimento generati e istruzione di uscita#include.Ad esempio, se si dispone di un file di intestazione header.h, come segue:

char *test (void);

E un file di intestazione utilizzando il programmaprogram.c principale,come segue:

int x;
#include "header.h"

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

Il compilatore vedrà il seguente flusso token:

int x;
char *test (void);

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

Solo riferimenti ai file uno di intestazione

Se un file di intestazione viene fatto riferimento due volte, il compilatore elaborare il contenuto dei due file di intestazione, che genereranno un errore. Per evitare ciò, la prassi è quella di mettere l'intero contenuto del file sul bilancio di compilazione condizionale, come segue:

#ifndef HEADER_FILE
#define HEADER_FILE

the entire header file file

#endif

Questa struttura è comunemente denominato involucro#ifndef.Quando si fa riferimento nuovamente il file di intestazione, la condizione è falsa, perché HEADER_FILE definito. In questo caso, il preprocessore salterà l'intero contenuto del file, il compilatore lo ignorerà.

citazione condizionale

A volte è necessario selezionare un riferimento per il programma da diversi file di intestazione differenti. Ad esempio, è necessario specificare i parametri di configurazione su diversi sistemi operativi. È possibile utilizzare una serie di condizioni per raggiungere questo obiettivo, come segue:

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

Tuttavia, se il file di intestazione più tempo per farlo è molto inadeguato, usare le macro nome del preprocessore per definire le intestazioni. Questo è chiamatoun riferimento condizionale.Non viene utilizzato come nome del file di intestazione#include parametro diretta, è sufficiente utilizzare una macro per sostituire il nome:

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

SYSTEM_H espande, il preprocessore sembra system_1.h, come originariamente scritto come#include.SYSTEM_H Makefile può essere definita con l'opzione -D per voi.