logo

Otsikkotiedostot C:ssä

Sisään C-kieli , otsikkotiedostot sisältävät joukon ennalta määritettyjä vakiokirjastotoimintoja. The .h on C:n otsikkotiedostojen pääte ja pyydämme käyttämään otsikkotiedostoa ohjelmassamme sisällyttämällä sen C-esikäsittelyohjeeseen #sisältää.

C Otsikkotiedostot tarjoavat ominaisuuksia, kuten kirjastofunktiot, tietotyypit, makrot jne. tuomalla ne ohjelmaan esiprosessoriohjeen #include avulla.



Otsikkotiedostojen syntaksi C:ssä

Voimme sisällyttää C:n otsikkotiedostoja käyttämällä yhtä kahdesta annetusta syntaksista, olipa kyseessä ennalta määritetty vai käyttäjän määrittämä otsikkotiedosto.

git push -komento
#include // for files in system/default directory or #include 'filename.h' // for files in same directory as source file>

Esiprosessori #include ohjaa kääntäjälle, että otsikkotiedosto on käsiteltävä ennen kääntämistä ja sisältää kaikki tarvittavat tietotyypit ja funktiomääritykset.

otsikkotiedostot C:ssä

C Otsikkotiedosto



Esimerkki C:n otsikkotiedostosta

Alla oleva esimerkki havainnollistaa otsikkotiedostojen käyttöä käyttämällä tavallista stdio.h-otsikkotiedostoa

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

>

>

Lähtö

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

C-otsikkotiedostojen tyypit

C:ssä on kahden tyyppisiä otsikkotiedostoja:

    Vakio / Aiemmat otsikkotiedostot Ei-standardi / Käyttäjän määrittämät otsikkotiedostot

1. C:n vakiootsikkotiedostot ja niiden käyttötarkoitukset

Vakiootsikkotiedostot sisältävät C - ohjelmointikielen ISO - standardissa määritellyt kirjastot . Ne tallennetaan kääntäjän oletushakemistoon ja ovat läsnä kaikissa C-kääntäjissä mistä tahansa toimittajasta.

C-kielen uusimmassa versiossa on 31 tavallista otsikkotiedostoa. Seuraavassa on luettelo C:n yleisesti käytetyistä otsikkotiedostoista:

Otsikkotiedosto

Kuvaus

Se sisältää tietoja ohjelman virheenkorjausta helpottavien diagnostiikan lisäämisestä.
Sitä käytetään suorittamaan virheenkäsittelytoimintoja, kuten errno(), strerror(), perror() jne.

Se sisältää joukon erilaisia ​​alustasta riippuvia vakioita, jotka liittyvät liukulukuarvoihin. Nämä vakiot on ehdottanut ANSI C.

Ne tekevät ohjelmista kannettavampia. Joitakin esimerkkejä tähän otsikkotiedostoon sisältyvistä vakioista ovat e(eksponentti), b(kantaluku/kantaluku) jne.

Sitä käytetään suorittamaan matemaattisia operaatioita, kuten sqrt() , log2() , pow() jne.
Sitä käytetään suorittamaan signaalinkäsittelytoimintoja, kuten signal() ja raise().

Sitä käytetään suorittamaan vakioargumenttifunktioita, kuten va_start() ja va_arg(). Sitä käytetään myös osoittamaan alkua

muuttuvan pituuden argumenttiluettelo ja noutaaksesi argumentit ohjelman muuttuvan pituisesta argumenttiluettelosta.

Se sisältää funktioprototyyppejä funktioille, jotka testaavat merkkejä tiettyjen ominaisuuksien osalta, sekä funktioiden prototyyppejä

toiminnot, joita voidaan käyttää muuttamaan isot kirjaimet pieniksi ja päinvastoin.

Sitä käytetään syöttö- ja tulostustoimintojen suorittamiseen käyttämällä toimintoja, kuten scanf() , printf() jne.

Se sisältää tavallisia aputoimintoja, kuten malloc(), realloc() jne. Se sisältää funktioprototyyppejä funktioille, jotka mahdollistavat ohituksen

tavallisesta funktion kutsu- ja paluusekvenssistä.

Sitä käytetään suorittamaan erilaisia ​​merkkijonojen käsittelyyn liittyviä toimintoja, kuten strlen() , strcmp() , strcpy() , size() jne.

Se määrittää eri muuttujatyyppien erilaiset ominaisuudet. Tässä otsikossa määritellyt makrot rajoittavat arvoja

erilaisia ​​muuttujatyyppejä, kuten char, int ja long. Nämä rajat määrittelevät, että muuttuja ei voi tallentaa mitään arvoa

Näiden rajojen yli, esimerkiksi etumerkitön merkki voi tallentaa maksimiarvon 255.

Sitä käytetään toimintojen suorittamiseen, jotka liittyvät päivämäärään () ja aika() kuten setdate() ja getdate() . Sitä käytetään myös järjestelmän päivämäärän muokkaamiseen

ja saada CPU-aika vastaavasti.

Se sisältää yleisiä tyyppimääritelmiä, joita C käyttää laskelmien suorittamiseen.

Se sisältää toimintoprototyyppejä ja muita tietoja, jotka mahdollistavat ohjelman muokkaamisen sen nykyisen kielen mukaan, jossa se on käynnissä.

Sen avulla tietokonejärjestelmä pystyy käsittelemään erilaisia ​​käytäntöjä tietojen, kuten kellonaikojen, päivämäärien tai suurten lukujen ilmaisemiseksi kaikkialla maailmassa.

Esimerkki

Alla oleva esimerkki osoittaa joidenkin yleisesti käytettyjen otsikkotiedostojen käytön C:ssä.

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

opi seleeniä

>

>

Lähtö

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. Ei-standardiotsikkotiedostot C:ssä ja niiden käyttötarkoitukset

Epätyypilliset otsikkotiedostot eivät ole osa kielen ISO-standardia. Ne ovat yleensä kaikki ohjelmoijien määrittämät otsikkotiedostot esimerkiksi mukautettuja kirjastotoimintoja varten jne. Käyttäjä asentaa ne manuaalisesti tai joku tietty toimittaja saattaa asentaa ne kääntäjälle.

C-kielelle on olemassa monia epästandardeja kirjastoja. Alla on lueteltu joitakin yleisesti käytettyjä ei-standardeja/käyttäjän määrittämiä otsikkotiedostoja:

Otsikkotiedosto Kuvaus
Se sisältää joitain hyödyllisiä konsolitoimintoja.
Se sisältää GNU:n GUI-kirjaston C:lle.

Esimerkki

Alla oleva esimerkki havainnollistaa epästandardin conio.h otsikkotiedoston käyttöä.

setinterval javascript

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

>

>

Lähtö

Press any key to print message Hello! Geek>

Luo oma otsikkotiedostosi C:ssä

Suuren ja monimutkaisen koodin kirjoittamisen sijaan voimme luoda omia otsikkotiedostoja ja sisällyttää ne ohjelmaamme käytettäväksi milloin tahansa. Se parantaa koodin toimivuutta ja luettavuutta. Alla on vaiheet oman otsikkotiedoston luomiseksi:

Vaihe 1: Kirjoita oma C-koodisi ja tallenna tiedosto .h laajennus. Alla on kuva otsikkotiedostosta:

C




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

>

puu- ja graafiteoria

>

Vaihe 2: Sisällytä otsikkotiedostosi #sisältää C-ohjelmassasi alla olevan kuvan mukaisesti:

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

>

>

Lähtö

Sum is: 35>

Sisältää useita otsikkotiedostoja

Voit käyttää ohjelmassa erilaisia ​​otsikkotiedostoja. Kun otsikkotiedosto sisällytetään ohjelmaan kahdesti, kääntäjä käsittelee kyseisen otsikkotiedoston sisällön kahdesti. Tämä johtaa virheeseen ohjelmassa. Tämän virheen poistamiseksi käytetään ehdollisia esikäsittelyohjeita.

Syntaksi

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

Tätä rakennetta kutsutaan kääreeksi #ifndef . Kun otsikko sisällytetään uudelleen, ehdollista tulee epätosi, koska HEADER_FILE_NAME on määritelty. Esiprosessori ohittaa koko tiedoston sisällön, eikä kääntäjä näe sitä kahdesti.

Joskus on välttämätöntä sisällyttää useita erilaisia ​​otsikkotiedostoja ohjelman vaatimusten mukaan. Tätä varten käytetään useita ehtoja.

Syntaksi

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