logo

Headerbestanden in C

In C-taal , header-bestanden bevatten een reeks vooraf gedefinieerde standaardbibliotheekfuncties. De .H is de extensie van de headerbestanden in C en we verzoeken om een ​​headerbestand in ons programma te gebruiken door dit op te nemen in de C-voorverwerkingsrichtlijn #erbij betrekken.

C Header-bestanden bieden functies zoals bibliotheekfuncties, gegevenstypen, macro's, enz. door ze in het programma te importeren met behulp van een preprocessorrichtlijn #include.



Syntaxis van headerbestanden in C

We kunnen headerbestanden in C opnemen door een van de twee gegeven syntaxis te gebruiken, ongeacht of het een vooraf gedefinieerd of door de gebruiker gedefinieerd headerbestand is.

Hoe tekenreeks naar char te converteren
#include // for files in system/default directory or #include 'filename.h' // for files in same directory as source file>

De #include-preprocessor geeft de compiler opdracht dat het headerbestand moet worden verwerkt vóór compilatie en bevat alle noodzakelijke gegevenstypen en functiedefinities.

header-bestanden in C

C Headerbestand



Voorbeeld van headerbestand in C

Het onderstaande voorbeeld demonstreert het gebruik van headerbestanden met behulp van het standaard invoer- en uitvoerstdio.h-headerbestand

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;> }>

>

>

Uitvoer

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

Soorten C-headerbestanden

Er zijn twee soorten headerbestanden in C:

    Standaard/bestaande headerbestanden Niet-standaard/door de gebruiker gedefinieerde headerbestanden

1. Standaard headerbestanden in C en hun gebruik

Standaard headerbestanden bevatten de bibliotheken die zijn gedefinieerd in de ISO-standaard van de programmeertaal C. Ze worden opgeslagen in de standaardmap van de compiler en zijn aanwezig in alle C-compilers van welke leverancier dan ook.

Er zijn 31 standaard headerbestanden in de nieuwste versie van de C-taal. Hieronder volgt de lijst met enkele veelgebruikte headerbestanden in C:

Koptekstbestand

Beschrijving

Het bevat informatie voor het toevoegen van diagnostische gegevens die het debuggen van programma's ondersteunen.
Het wordt gebruikt om foutafhandelingsbewerkingen uit te voeren, zoals errno(), strerror(), perror(), enz.

Het bevat een reeks verschillende platformafhankelijke constanten die verband houden met drijvende-kommawaarden. Deze constanten worden voorgesteld door ANSI C.

Ze maken programma's draagbaarder. Enkele voorbeelden van constanten in dit headerbestand zijn e(exponent), b(grondtal/radix), enz.

Het wordt gebruikt om wiskundige bewerkingen uit te voeren, zoals sqrt() , log2() , pow() , enz.
Het wordt gebruikt om signaalverwerkingsfuncties uit te voeren, zoals signal() en raise().

Het wordt gebruikt om standaard argumentfuncties uit te voeren, zoals va_start() en va_arg(). Het wordt ook gebruikt om het begin van de periode aan te geven

argumentenlijst met variabele lengte en om de argumenten respectievelijk op te halen uit de argumentenlijst met variabele lengte in het programma.

Het bevat functieprototypes voor functies die karakters testen op bepaalde eigenschappen, en ook functieprototypes voor

functies die kunnen worden gebruikt om hoofdletters naar kleine letters te converteren en omgekeerd.

Het wordt gebruikt om invoer- en uitvoerbewerkingen uit te voeren met behulp van functies zoals scanf() , printf() , enz.

Het bevat standaard nutsfuncties zoals malloc(), realloc(), enz. Het bevat functieprototypes voor functies die het omzeilen mogelijk maken

van de gebruikelijke functieaanroep en retourreeks.

Het wordt gebruikt om verschillende functionaliteiten uit te voeren die verband houden met stringmanipulatie, zoals strlen() , strcmp() , strcpy() , size(), enz.

Het bepaalt de verschillende eigenschappen van de verschillende typen variabelen. De macro's die in deze header zijn gedefinieerd, beperken de waarden van

verschillende typen variabelen, zoals char, int en long. Deze limieten specificeren dat een variabele geen enkele waarde kan opslaan

buiten deze limieten kan een niet-ondertekend teken bijvoorbeeld een maximale waarde van 255 opslaan.

Het wordt gebruikt om functies uit te voeren die verband houden met date() en tijd() zoals setdate() en getdate() . Het wordt ook gebruikt om de systeemdatum te wijzigen

en respectievelijk de CPU-tijd ophalen.

Het bevat algemene typedefinities die door C worden gebruikt voor het uitvoeren van berekeningen.

Het bevat functieprototypes en andere informatie waarmee een programma kan worden aangepast voor de huidige landinstelling waarop het draait.

Het stelt het computersysteem in staat om verschillende conventies te hanteren voor het uitdrukken van gegevens zoals tijden, datums of grote getallen over de hele wereld.

Voorbeeld

Het onderstaande voorbeeld demonstreert het gebruik van enkele veelgebruikte headerbestanden 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;> }>

opdracht in knooppunt js

>

>

Uitvoer

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. Niet-standaard headerbestanden in C en hun gebruik

Niet-standaard headerbestanden maken geen deel uit van de ISO-standaard van de taal. Het zijn over het algemeen alle headerbestanden die door de programmeurs zijn gedefinieerd voor doeleinden zoals het bevatten van aangepaste bibliotheekfuncties enz. Ze worden handmatig geïnstalleerd door de gebruiker of misschien als onderdeel van de compiler door een specifieke leverancier.

Er zijn veel niet-standaardbibliotheken voor C-taal. Enkele veelgebruikte niet-standaard/door de gebruiker gedefinieerde headerbestanden worden hieronder vermeld:

Koptekstbestand Beschrijving
Het bevat enkele nuttige consolefuncties.
Het bevat GNU's GUI-bibliotheek voor C.

Voorbeeld

Het onderstaande voorbeeld demonstreert het gebruik van het niet-standaard headerbestand conio.h.

bevat python

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;> }>

>

>

Uitvoer

Press any key to print message Hello! Geek>

Maak uw eigen headerbestand in C

In plaats van een grote en complexe code te schrijven, kunnen we onze eigen headerbestanden maken en deze in ons programma opnemen, zodat we ze kunnen gebruiken wanneer we maar willen. Het verbetert de codefunctionaliteit en leesbaarheid. Hieronder staan ​​de stappen om ons eigen headerbestand te maken:

Stap 1: Schrijf uw eigen C-code en sla dat bestand op met de .H verlenging. Hieronder ziet u de illustratie van het headerbestand:

C




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

>

vervang alle Java

>

Stap 2: Voeg uw headerbestand toe met #erbij betrekken in uw C-programma, zoals hieronder weergegeven:

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));> }>

>

>

Uitvoer

Sum is: 35>

Inclusief meerdere headerbestanden

U kunt verschillende headerbestanden in een programma gebruiken. Wanneer een headerbestand twee keer in een programma wordt opgenomen, verwerkt de compiler de inhoud van dat headerbestand twee keer. Dit leidt tot een fout in het programma. Om deze fout te elimineren, worden voorwaardelijke preprocessorrichtlijnen gebruikt.

Syntaxis

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

Deze constructie wordt wrapper genoemd #ifndef . Wanneer de header opnieuw wordt opgenomen, wordt de conditional false, omdat HEADER_FILE_NAME is gedefinieerd. De preprocessor slaat de volledige bestandsinhoud over en de compiler ziet deze niet twee keer.

Soms is het essentieel om verschillende headerbestanden op te nemen, afhankelijk van de vereisten van het programma. Hiervoor worden meerdere conditionals gebruikt.

Syntaxis

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