logo

File di intestazione in C

In Linguaggio C , i file header contengono una serie di funzioni di libreria standard predefinite. IL .H è l'estensione dei file header in C e chiediamo di utilizzare un file header nel nostro programma includendolo nella direttiva di preelaborazione C #includere.

I file di intestazione C offrono funzionalità come funzioni di libreria, tipi di dati, macro, ecc. importandoli nel programma con l'aiuto di una direttiva del preprocessore #include.



Sintassi dei file di intestazione in C

Possiamo includere file di intestazione in C utilizzando una delle due sintassi fornite, sia che si tratti di un file di intestazione predefinito o definito dall'utente.

Attore Rekha
#include // for files in system/default directory or #include 'filename.h' // for files in same directory as source file>

Il preprocessore #include indica al compilatore che il file di intestazione deve essere elaborato prima della compilazione e include tutti i tipi di dati e le definizioni di funzioni necessari.

file di intestazione in C

File di intestazione C



Esempio di file di intestazione in C

L'esempio seguente dimostra l'uso dei file di intestazione utilizzando il file di intestazione stdio.h di input e output standard

C






// C program to demonstrate the use of header files> // standard input and output stdio.h header file> #include> int> main()> {> >printf>(> >'Printf() is the function in stdio.h header file'>);> >return> 0;> }>

>

>

Produzione

Printf() is the function in stdio.h header file>

Tipi di file di intestazione C

Esistono due tipi di file header in C:

    File di intestazione standard/preesistenti File di intestazione non standard/definiti dall'utente

1. File di intestazione standard in C e loro usi

I file header standard contengono le librerie definite nello standard ISO del linguaggio di programmazione C. Sono memorizzati nella directory predefinita del compilatore e sono presenti in tutti i compilatori C di qualsiasi fornitore.

Esistono 31 file di intestazione standard nell'ultima versione del linguaggio C. Di seguito è riportato l'elenco di alcuni file di intestazione comunemente utilizzati in C:

File di intestazione

Descrizione

Contiene informazioni per aggiungere la diagnostica che aiuta il debug del programma.
Viene utilizzato per eseguire operazioni di gestione degli errori come errno(), strerror(), perror(), ecc.

Contiene un insieme di varie costanti dipendenti dalla piattaforma relative a valori in virgola mobile. Queste costanti sono proposte da ANSI C.

Rendono i programmi più portabili. Alcuni esempi di costanti incluse in questo file di intestazione sono: e(esponente), b(base/radice), ecc.

Viene utilizzato per eseguire operazioni matematiche come sqrt() , log2() , pow() , ecc.
Viene utilizzato per eseguire funzioni di gestione del segnale come signal() e raise().

Viene utilizzato per eseguire funzioni di argomenti standard come va_start() e va_arg(). Viene utilizzato anche per indicare l'inizio del

elenco di argomenti a lunghezza variabile e per recuperare rispettivamente gli argomenti dall'elenco di argomenti a lunghezza variabile nel programma.

Contiene prototipi di funzioni per funzioni che testano i caratteri per determinate proprietà e anche prototipi di funzioni per

funzioni che possono essere utilizzate per convertire le lettere maiuscole in lettere minuscole e viceversa.

Viene utilizzato per eseguire operazioni di input e output utilizzando funzioni come scanf() , printf() , ecc.

Contiene funzioni di utilità standard come malloc(), realloc(), ecc. Contiene prototipi di funzioni per funzioni che consentono di aggirare

della consueta chiamata di funzione e sequenza di ritorno.

Viene utilizzato per eseguire varie funzionalità relative alla manipolazione delle stringhe come strlen() , strcmp() , strcpy() , size(), ecc.

Determina le varie proprietà dei vari tipi di variabili. Le macro definite in questa intestazione limitano i valori di

vari tipi di variabili come char, int e long. Questi limiti specificano che una variabile non può memorizzare alcun valore

oltre questi limiti, ad esempio, un carattere senza segno può memorizzare fino ad un valore massimo di 255.

Viene utilizzato per eseguire funzioni relative a date() e tempo() come setdate() e getdate() . Viene utilizzato anche per modificare la data di sistema

e ottenere rispettivamente il tempo della CPU.

Contiene definizioni di tipo comuni utilizzate da C per eseguire calcoli.

Contiene prototipi di funzioni e altre informazioni che consentono di modificare un programma per la locale corrente su cui è in esecuzione.

Consente al sistema informatico di gestire diverse convenzioni per esprimere dati come ore, date o grandi numeri in tutto il mondo.

Esempio

L'esempio seguente dimostra l'uso di alcuni file header comunemente usati in C.

C




// C program to illustrate> // the use of header file> // in C> #include> #include> #include> #include> // Driver Code> int> main()> {> >char> s1[20] =>'12345'>;> >char> s2[10] =>'Geeks'>;> >char> s3[10] =>'ForGeeks'>;> >long> int> res;> >// Find the value of 9^3 using a> >// function in math.h library> >res =>pow>(9, 3);> >printf>(>'Using math.h, '> >'The value is: %ld '>,> >res);> >// Convert a string to long long int> >// using a function in stdlib.h library> >long> int> a =>atol>(s1);> >printf>(>'Using stdlib.h, the string'>);> >printf>(>' to long int: %ld '>, a);> >// Copy the string s3 into s2 using> >// using a function in string.h library> >strcpy>(s2, s3);> >printf>(>'Using string.h, the strings'> >' s2 and s3: %s %s '>,> >s2, s3);> >return> 0;> }>

progettazione di database in dbms

>

>

Produzione

Using math.h, The value is: 729 Using stdlib.h, the string to long int: 12345 Using string.h, the strings s2 and s3: ForGeeks ForGeeks>

2. File di intestazione non standard in C e loro usi

I file di intestazione non standard non fanno parte dello standard ISO della lingua. Generalmente sono tutti i file di intestazione definiti dai programmatori per scopi come contenere funzioni di libreria personalizzate, ecc. Sono installati manualmente dall'utente o forse fanno parte del compilatore da qualche fornitore specifico.

Esistono molte librerie non standard per il linguaggio C. Di seguito sono elencati alcuni file di intestazione non standard/definiti dall'utente di uso comune:

File di intestazione Descrizione
Contiene alcune utili funzioni della console.
Contiene la libreria GUI di GNU per C.

Esempio

L'esempio seguente dimostra l'uso del file di intestazione non standard conio.h.

C

prima ricerca approfondita dell'algoritmo




#include> #include> // Function to display a welcome message> void> displayMessage() {> >printf>(>'Hello! Geek '>);> }> int> main() {> >// Using conio.h functions> >printf>(>'Press any key to print message '>);> >getch();>// Wait for a key press> >// Call the additional function after a key press> >displayMessage();> >return> 0;> }>

>

>

Produzione

Press any key to print message Hello! Geek>

Crea il tuo file di intestazione in C

Invece di scrivere un codice lungo e complesso, possiamo creare i nostri file header e includerli nel nostro programma per utilizzarli quando vogliamo. Migliora la funzionalità e la leggibilità del codice. Di seguito sono riportati i passaggi per creare il nostro file di intestazione:

Passo 1: Scrivi il tuo codice C e salva quel file con l'estensione .H estensione. Di seguito è riportata l'illustrazione del file di intestazione:

C




// Function to find the sum of two> // numbers passed> int> sumOfTwoNumbers(>int> a,>int> b)> {> >return> (a + b);> }>

>

hashset vs hashmap

>

Passo 2: Includi il tuo file di intestazione con #includere nel tuo programma C come mostrato di seguito:

C




// C++ program to find the sum of two> // numbers using function declared in> // header file> #include 'iostream'> // Including header file> #include 'sum.h'> using> namespace> std;> // Driver Code> int> main()> {> >// Given two numbers> >int> a = 13, b = 22;> >// Function declared in header> >// file to find the sum> >printf>(>'Sum is: %d'>, sumoftwonumbers(a, b));> }>

>

>

Produzione

Sum is: 35>

Compresi più file di intestazione

È possibile utilizzare vari file di intestazione in un programma. Quando un file di intestazione viene incluso due volte all'interno di un programma, il compilatore elabora il contenuto di quel file di intestazione due volte. Ciò porta ad un errore nel programma. Per eliminare questo errore, vengono utilizzate le direttive condizionali del preprocessore.

Sintassi

#ifndef HEADER_FILE_NAME #define HEADER_FILE_NAME the entire header file #endif>

Questo costrutto è chiamato wrapper #ifndef . Quando l'intestazione viene inclusa nuovamente, il condizionale diventerà falso, perché HEADER_FILE_NAME è definito. Il preprocessore salterà l'intero contenuto del file e il compilatore non lo vedrà due volte.

A volte è essenziale includere diversi file di intestazione diversi in base ai requisiti del programma. Per questo vengono utilizzati più condizionali.

Sintassi

#if SYSTEM_ONE #include 'system1.h' #elif SYSTEM_TWO #include 'system2.h' #elif SYSTEM_THREE .... #endif>