I C sprog , indeholder header-filer et sæt foruddefinerede standardbiblioteksfunktioner. Det .h er udvidelsen af header-filerne i C, og vi anmoder om at bruge en header-fil i vores program ved at inkludere den med C-forbehandlingsdirektivet #omfatte.
C Header-filer tilbyder funktioner som biblioteksfunktioner, datatyper, makroer osv. ved at importere dem til programmet ved hjælp af et præprocessor-direktiv #include.
Syntaks af header-filer i C
Vi kan inkludere header-filer i C ved at bruge en af de givne to syntaks, uanset om det er en foruddefineret eller brugerdefineret header-fil.
sæt java
#include // for files in system/default directory or #include 'filename.h' // for files in same directory as source file>
#include præprocessoren instruerer compileren om, at header-filen skal behandles før kompilering og inkluderer alle de nødvendige datatyper og funktionsdefinitioner.

C Overskriftsfil
Eksempel på overskriftsfil i C
Nedenstående eksempel viser brugen af header-filer ved hjælp af standard input og output stdio.h header-fil
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;> }> |
>
>Produktion
Printf() is the function in stdio.h header file>
Typer af C-header-filer
Der er to typer header-filer i C:
- Standard / Eksisterende header-filer Ikke-standard / Brugerdefinerede header-filer
1. Standardoverskriftsfiler i C og deres anvendelser
Standard header-filer indeholder de biblioteker, der er defineret i ISO-standarden for programmeringssproget C. De er gemt i compilerens standardbibliotek og er til stede i alle C-compilatorerne fra enhver leverandør.
Der er 31 standard header-filer i den seneste version af C-sproget. Følgende er listen over nogle almindeligt anvendte header-filer i C:
| Overskriftsfil | Beskrivelse |
|---|---|
| Den indeholder oplysninger om tilføjelse af diagnostik, der hjælper programfejlretning. | |
| Det bruges til at udføre fejlhåndteringsoperationer som errno(), strerror(), perror() osv. | |
| Den indeholder et sæt forskellige platformafhængige konstanter relateret til flydende kommaværdier. Disse konstanter er foreslået af ANSI C. De gør programmer mere bærbare. Nogle eksempler på konstanter inkluderet i denne overskriftsfil er e(eksponent), b(base/radix) osv. | |
| Det bruges til at udføre matematiske operationer som sqrt(), log2(), pow() osv. | |
| Det bruges til at udføre signalhåndteringsfunktioner som signal() og raise(). | |
| Det bruges til at udføre standard argumentfunktioner som va_start() og va_arg(). Det bruges også til at angive starten på variabel-længde argumentliste og for at hente argumenterne fra variabel-længde-argumentlisten i programmet. | |
| Den indeholder funktionsprototyper til funktioner, der tester karakterer for bestemte egenskaber, og også funktionsprototyper for funktioner, der kan bruges til at konvertere store bogstaver til små bogstaver og omvendt. | |
| Det bruges til at udføre input- og output-operationer ved hjælp af funktioner som scanf() , printf() osv. | |
| Den indeholder standardværktøjsfunktioner som malloc(), realloc() osv. Den indeholder funktionsprototyper til funktioner, der tillader omgåelse af den sædvanlige funktion kalde- og retursekvens. | |
| Det bruges til at udføre forskellige funktionaliteter relateret til strengmanipulation som strlen() , strcmp() , strcpy() , size() osv. | |
| Det bestemmer de forskellige egenskaber for de forskellige variabeltyper. Makroerne defineret i denne overskrift begrænser værdierne af forskellige variable typer som char, int og long. Disse grænser angiver, at en variabel ikke kan lagre nogen værdi ud over disse grænser kan et usigneret tegn f.eks. gemme op til en maksimal værdi på 255. | |
| Det bruges til at udføre funktioner relateret til date() og tid() ligesom setdate() og getdate() . Det bruges også til at ændre systemdatoen og få henholdsvis CPU-tiden. | |
| Den indeholder almindelige typedefinitioner, der bruges af C til at udføre beregninger. | |
| Den indeholder funktionsprototyper og anden information, der gør det muligt at ændre et program til den aktuelle lokalitet, hvor det kører. Det gør det muligt for computersystemet at håndtere forskellige konventioner til at udtrykke data, såsom tidspunkter, datoer eller store tal over hele verden. |
Eksempel
Nedenstående eksempel viser brugen af nogle almindeligt anvendte header-filer i 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;> }> |
nfa til dfa konvertering
>
typer joins i rdbms
>Produktion
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. Ikke-standard header-filer i C og deres anvendelser
Ikke-standard header-filer er ikke en del af sprogets ISO-standard. De er generelt alle de header-filer, der er defineret af programmørerne til formål som at indeholde brugerdefinerede biblioteksfunktioner osv. De installeres manuelt af brugeren eller måske en del af compileren af en bestemt leverandør.
Der er masser af ikke-standardbiblioteker til C-sprog. Nogle almindeligt anvendte ikke-standard/brugerdefinerede header-filer er anført nedenfor:
| Overskriftsfil | Beskrivelse |
|---|---|
| Den indeholder nogle nyttige konsolfunktioner. | |
| Den indeholder GNUs GUI-bibliotek for C. |
Eksempel
Nedenstående eksempel viser brugen af conio.h ikke-standard header-fil.
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;> }> |
>
>
Produktion
Press any key to print message Hello! Geek>
Opret din egen header-fil i C
I stedet for at skrive en stor og kompleks kode, kan vi oprette vores egne header-filer og inkludere dem i vores program, så de kan bruges, når vi vil. Det forbedrer kodefunktionalitet og læsbarhed. Nedenfor er trinene til at oprette vores egen header-fil:
Trin 1: Skriv din egen C-kode og gem filen med .h udvidelse. Nedenfor er illustrationen af header-filen:
C
// Function to find the sum of two> // numbers passed> int> sumOfTwoNumbers(>int> a,>int> b)> {> >return> (a + b);> }> |
>
erstatte alt java
>
Trin 2: Inkluder din header-fil med #omfatte i dit C-program som vist nedenfor:
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));> }> |
>
>
Produktion
Sum is: 35>
Inklusive flere header-filer
Du kan bruge forskellige header-filer i et program. Når en header-fil er inkluderet to gange i et program, behandler compileren indholdet af den header-fil to gange. Dette fører til en fejl i programmet. For at eliminere denne fejl bruges betingede præprocessor-direktiver.
Syntaks
#ifndef HEADER_FILE_NAME #define HEADER_FILE_NAME the entire header file #endif>
Denne konstruktion kaldes wrapper #ifndef . Når overskriften er inkluderet igen, vil den betingede blive falsk, fordi HEADER_FILE_NAME er defineret. Forprocessoren vil springe over hele filindholdet, og compileren vil ikke se det to gange.
Nogle gange er det vigtigt at inkludere flere forskellige header-filer baseret på kravene til programmet. Til dette bruges flere betingelser.
Syntaks
#if SYSTEM_ONE #include 'system1.h' #elif SYSTEM_TWO #include 'system2.h' #elif SYSTEM_THREE .... #endif>