En llenguatge C , els fitxers de capçalera contenen un conjunt de funcions de biblioteca estàndard predefinides. El .h és l'extensió dels fitxers de capçalera en C i demanem utilitzar un fitxer de capçalera al nostre programa incloent-lo amb la directiva de preprocessament C #incloure.
Els fitxers de capçalera C ofereixen funcions com ara funcions de biblioteca, tipus de dades, macros, etc., important-los al programa amb l'ajuda d'una directiva de preprocessador #include.
Sintaxi dels fitxers de capçalera en C
Podem incloure fitxers de capçalera en C utilitzant una de les dues sintaxis donades, ja sigui un fitxer de capçalera predefinit o definit per l'usuari.
java doble a cadena
#include // for files in system/default directory or #include 'filename.h' // for files in same directory as source file>
El preprocessador #include indica al compilador que el fitxer de capçalera s'ha de processar abans de la compilació i inclou tots els tipus de dades i definicions de funcions necessàries.

C Fitxer de capçalera
Exemple de fitxer de capçalera en C
L'exemple següent mostra l'ús de fitxers de capçalera mitjançant el fitxer de capçalera stdio.h d'entrada i sortida estàndard
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;> }> |
>
>Sortida
Printf() is the function in stdio.h header file>
Tipus de fitxers de capçalera C
Hi ha dos tipus de fitxers de capçalera en C:
- Fitxers de capçalera estàndard / preexistents Fitxers de capçalera no estàndard / definits per l'usuari
1. Fitxers de capçalera estàndard en C i els seus usos
Els fitxers de capçalera estàndard contenen les biblioteques definides a l'estàndard ISO del llenguatge de programació C. S'emmagatzemen al directori predeterminat del compilador i estan presents a tots els compiladors C de qualsevol proveïdor.
Hi ha 31 fitxers de capçalera estàndard a l'última versió del llenguatge C. A continuació es mostra la llista d'alguns fitxers de capçalera utilitzats habitualment en C:
| Fitxer de capçalera | Descripció |
|---|---|
| Conté informació per afegir diagnòstics que ajuden a la depuració del programa. | |
| S'utilitza per realitzar operacions de gestió d'errors com errno(), strerror(), perror(), etc. | |
| Conté un conjunt de diverses constants dependents de la plataforma relacionades amb valors de coma flotant. Aquestes constants són proposades per ANSI C. Fan els programes més portàtils. Alguns exemples de constants incloses en aquest fitxer de capçalera són: e(exponent), b(base/radix), etc. | |
| S'utilitza per realitzar operacions matemàtiques com sqrt() , log2() , pow() , etc. | |
| S'utilitza per dur a terme funcions de gestió de senyal com signal() i raise(). | |
| S'utilitza per realitzar funcions d'argument estàndard com va_start() i va_arg(). També s'utilitza per indicar l'inici de la llista d'arguments de longitud variable i per obtenir els arguments de la llista d'arguments de longitud variable al programa, respectivament. | |
| Conté prototips de funcions per a funcions que proveen caràcters per a determinades propietats, i també prototips de funcions per a funcions que es poden utilitzar per convertir lletres majúscules en minúscules i viceversa. | |
| S'utilitza per realitzar operacions d'entrada i sortida utilitzant funcions com scanf() , printf() , etc. | |
| Conté funcions d'utilitat estàndard com malloc(), realloc(), etc. Conté prototips de funcions per a funcions que permeten evitar-los. de la seqüència de crida i retorn de funció habitual. | |
| S'utilitza per realitzar diverses funcionalitats relacionades amb la manipulació de cadenes, com ara strlen() , strcmp() , strcpy() , size(), etc. | |
| Determina les diferents propietats dels diferents tipus de variables. Les macros definides en aquesta capçalera limiten els valors de diversos tipus de variables com char, int i long. Aquests límits especifiquen que una variable no pot emmagatzemar cap valor més enllà d'aquests límits, per exemple, un caràcter sense signar pot emmagatzemar fins a un valor màxim de 255. | |
| S'utilitza per realitzar funcions relacionades amb date() i temps() com setdate() i getdate() . També s'utilitza per modificar la data del sistema i obtenir el temps de CPU respectivament. | |
| Conté definicions de tipus comuns utilitzades per C per realitzar càlculs. | |
| Conté prototips de funcions i altra informació que permet modificar un programa per a la configuració regional actual en què s'està executant. Permet al sistema informàtic manejar diferents convencions per expressar dades com ara hores, dates o grans números arreu del món. |
Exemple
L'exemple següent mostra l'ús d'alguns fitxers de capçalera d'ús habitual en 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;> }> |
què és awt
>
>Sortida
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. Fitxers de capçalera no estàndard en C i els seus usos
Els fitxers de capçalera no estàndard no formen part de l'estàndard ISO de l'idioma. En general, són tots els fitxers de capçalera definits pels programadors amb finalitats com contenir funcions de biblioteca personalitzades, etc. Els instal·len manualment l'usuari o potser part del compilador per algun venedor específic.
Hi ha moltes biblioteques no estàndard per al llenguatge C. A continuació s'enumeren alguns fitxers de capçalera no estàndard/definits per l'usuari d'ús habitual:
| Fitxer de capçalera | Descripció |
|---|---|
| Conté algunes funcions útils de la consola. | |
| Conté la biblioteca GUI de GNU per a C. |
Exemple
L'exemple següent mostra l'ús del fitxer de capçalera no estàndard conio.h.
C
#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;> }> |
>
>
Sortida
comanda al node js
Press any key to print message Hello! Geek>
Creeu el vostre propi fitxer de capçalera en C
En lloc d'escriure un codi gran i complex, podem crear els nostres propis fitxers de capçalera i incloure'ls al nostre programa per utilitzar-los sempre que vulguem. Millora la funcionalitat i la llegibilitat del codi. A continuació es mostren els passos per crear el nostre propi fitxer de capçalera:
Pas 1: Escriu el teu propi codi C i desa aquest fitxer amb el fitxer .h extensió. A continuació es mostra la il·lustració del fitxer de capçalera:
C
// Function to find the sum of two> // numbers passed> int> sumOfTwoNumbers(>int> a,>int> b)> {> >return> (a + b);> }> |
>
ordenació de llista de matrius java
>
Pas 2: Incloeu el vostre fitxer de capçalera amb #incloure al vostre programa C, tal com es mostra a continuació:
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));> }> |
>
>
Sortida
Sum is: 35>
Inclou diversos fitxers de capçalera
Podeu utilitzar diversos fitxers de capçalera en un programa. Quan un fitxer de capçalera s'inclou dues vegades dins d'un programa, el compilador processa el contingut d'aquest fitxer de capçalera dues vegades. Això condueix a un error al programa. Per eliminar aquest error, s'utilitzen directives de preprocessador condicionals.
Sintaxi
#ifndef HEADER_FILE_NAME #define HEADER_FILE_NAME the entire header file #endif>
Aquesta construcció s'anomena wrapper #ifndef . Quan es torni a incloure la capçalera, el condicional esdevindrà fals, perquè HEADER_FILE_NAME està definit. El preprocessador saltarà tot el contingut del fitxer i el compilador no el veurà dues vegades.
De vegades és essencial incloure diversos fitxers de capçalera segons els requisits del programa. Per a això, s'utilitzen múltiples condicionals.
Sintaxi
#if SYSTEM_ONE #include 'system1.h' #elif SYSTEM_TWO #include 'system2.h' #elif SYSTEM_THREE .... #endif>