Hallo en welkom.
In deze lezing wil ik praten over de include-verklaring.
En zo weer, vanaf onze eerste daag onze
eerste blootstelling aan c-code en c-programma uit, je zou moeten hebben merkte dit onder meer op.
Het is hier op lijn acht voorbeeld, en
dit is ons voorbeeld challenge project basic c programma.
Je ziet dat het inclusief is.
En nu omdat we hebben geleerd over de preprocessor,
we weten dat het een preprocessor-richtlijn is omdat we dat pond-symbool hebben.
Alles wat begint met de
pond-symbool voor andere spaties is een preprocessor-opdracht, een preprocessor-richtlijn.
En dus weten we dat regel acht omvat: speciaal trefwoord met het
hekje is een voorbewerkte richtlijn.
Ik wil het je nu uitleggen wat doet dit precies?
Wat betekent dit?
Nogmaals, dit is een basisconcept in c waar we het al heel vroeg
over moeten hebben, omdat elk c-programma het heeft.
Het lijkt erg op elkaar als je bekend bent met java met de import-instructie.
Maar we gaan dit beschrijven in detail nu in sommige dia's, maar je
zult dit in al je c-programma's zien.
Dus de include-instructie is een preprocessor-richtlijn vanwege dat hekje
weten we dat.
En we noemen het een verklaring als als tegen een richtlijn zijn zonder echte
reden, alleen omdat het gebruikelijk is om gebruik die term in programmeertaal, maar technisch
gezien is het een richtlijn.
En nogmaals, het voorbeeld in onze programma was het opnemen van
dit iets tussen deze punthaken.
Dus we zien dit inclusief trefwoord en dan zien we deze stdio. H.
En dit is dus een voorbeeld.
Dit is degene die wij gebruikt in onze eerste uitdaging.
Het is niet strikt deel van het uitvoerbare programma.
Het programma is echter werkt niet zonder.
We weten dat het een voorbewerkte richtlijn.
Het doet niet echt veel als hoe het programma werkt.
Het vertelt alleen de compiler voordat het loopt, hé, we deden hier iets met
deze onder meer.
En dus als je het niet hebt daar gaat de compiler
klagen en fouten gooien.
Dus je hebt het nodig.
Het hekje geeft aan dat: het is een pre-processing richtlijn.
Daar hebben we het over gehad, namelijk: een instructie van uw compiler om
iets eerder te doen het compileren van de broncode.
Er zijn veel veel pre-processing richtlijnen, en we hebben enkele voorbeelden gegeven
in onze pre-processing lezing.
We hadden het over constanten, gedefinieerde uitspraken.
We spraken over als en anders en enzovoort verschillende de
voorwaardelijke pre-processing richtlijnen.
Maar dit is een van de meest echt veelgebruikte, de omvatten.
En dus nogmaals, deze richtlijnen kunnen overal in uw broncode staan, maar ze
staan meestal bovenaan.
In het bijzonder, dit: include preprocessor-richtlijn lijkt erg op de importinstructie
in java als je daar bekend mee bent.
Maar wat betekent dat?
Dus in het bovenstaande voorbeeld hier met het pond-symbool stdio. h, dit vertelt je compiler om
een deel van uw programma-inhoud van het bestand met die
naam op te nemen.
Dus er is een bestandsnaam die bestaat ergens genaamd stdio. H.
En wat de richtlijn zegt is: mijn huidige programma dat de richtlijn
bevat, heeft een deel van de inhoud nodig in dit bestand om te compileren.
Dus specifiek de include richtlijn zal bestandsnamen hebben die eindigen
op . H.
Dit worden header-bestanden genoemd.
Ze worden header-bestanden genoemd omdat ze meestal
bovenaan het bronbestand staan.
Het is een van de eerste dingen die je doet is dat u al uw header-bestanden opneemt.
En nogmaals, deze preprocessor richtlijn zegt
dat ik een deel van de inhoud in dat bestand wil.
Het is geen c-bestand.
We weten dat bestanden die eindigen in een . c zijn c-bronbestanden.
Dus de . h moet zijn iets anders, en dat is het ook.
Het is een header-bestand.
En dat heeft het. h extensie.
Dus laten we praten over wat een header-bestand is.
Headerbestanden definiëren informatie over enkele van de functies die door
dat bestand worden geleverd.
En ik zal je een voorbeeld geven van de inhoud in een headerbestand.
Maar eerst definiëren ze wat informatie over een broncode.
En specifiek voor ons voorbeeld met die inbegrepen stdio. h, dit is inclusief een
c standaard bibliotheekkop.
Dus onthoud, ik vertelde u over bibliotheken.
Bibliotheken zijn gewoon extra functionaliteit die al voor u is geschreven en
c die u kunt opnemen in uw programma, zodat u het
niet hoeft te herschrijven.
Dus nogmaals, voorbeelden van bibliotheken zijn: lezen en schrijven naar de console,
output weergeven, lezen en bestanden schrijven, allerlei verschillende dingen netwerkcode
doen, veel veel verschillende bibliotheken die er zijn.
Maar standaard. h is een c-standaardbibliotheek.
Wat dat betekent is dat het wordt geleverd met
de programmeertaal c en het biedt functionaliteit voor weergave output onder vele andere dingen.
Dus standaard. h, het is een header-bestand.
Het definieert een aantal functies die: de compiler moet het begrijpen voordat het
het daadwerkelijk kan gebruiken.
Dus specifiek stdio. h bevat informatie over printf.
En dus gaan we praten over printf in de volgende
lezing die ons helpt om de output weer te geven, maar printf is een functie
die in de stdio staat. h header-bestand.
En het bevat ook vele andere functies.
Stdio is een afkorting voor standaard ingangsuitgang.
Dus deze bibliotheek beschrijft het bevat functionaliteit voor het omgaan met
input en output.
En dus is dit het concept een betekenisvolle naam te gebruiken.
Dat willen we niet noemen bibliotheek Jason of Jason . h omdat dat niet
zinvol is.
Wij gebruiken stdio. h omdat het zegt standaard io.
Standaard invoer en uitvoer, en we weten het dat, die bibliotheek bevat allerlei functionaliteit
voor het importeren van alfa.
Specifiek functionaliteit die we willen gebruiken in ons challenge-programma, ons voorbeeld
eerste programma willen we deze functie genaamd printf
gebruiken, waarmee we weergave-uitvoer naar de console.
En dus door deze stdio op te nemen. h in onze broncode, zeggen we om deze functionaliteit hiervan
te gebruiken printf, moeten we dit bestand opnemen.
Dus header-branden gaan specificeren informatie die de compiler gebruikt
om hergebruik te integreren en te gebruiken code, alle functies binnen een programma.
Dus je gaat of veel gebruiken veel verschillende standaard bibliotheekheaderbestanden en
er zijn er veel daarbuiten, studio. h is er maar één.
Er zijn weer header-bestanden die definiëren functionaliteit of
functie-prototypes voor netwerkcode, socketcode.
Nogmaals, we gaan door een veel van hen, strings voor volledige woorden en
dat soort dingen.
Maar naast de c-standaard bibliotheek in de verschillende bibliotheken die bij de c-programmering
worden geleverd taal, kunt u ook uw eigen header-bestanden
maken, en u zult uw eigen header-bestanden maken omdat header-bestanden
hergebruik van software mogelijk maken.
Ze stellen u in staat om opnieuw te gebruiken functionaliteit geschreven in c.
Dus ergens schreven de ontwerpers van c al deze c-code die gegevens leest en
schrijft en invoer en uitvoer afhandelt.
Ze willen deze nieuwe c-programmeur niet zelf moeten schrijven.
Dus ze gaan schrijven het voor jou,
en ze zullen zeggen dat je het kunt gebruiken.
En de manier waarop je het gebruikt is u neemt het headerbestand op.
En dus jij als je eigen ontwikkelaar, je mag wat code schrijven in een groot, groot
groot programma, duizenden bestanden die die u in andere bestanden wilt gebruiken.
En dus ga je schrijven uw eigen header-bestanden.
En de header-bestanden, nogmaals, gaan functieprototypes definiëren, verschillende
constanten, allerlei verschillende dingen die een ander gaan helpen
bestand dat uw programma kan gebruiken, zal het helpen bij het
compileren van uw programma.
Het is dus hergebruik van software techniek in wezen.
Dus we gaan dit opnemen standaard io. header-bestand in een programma wanneer
we het moeten gebruiken de printf-functie uit
de standaardbibliotheek, is vereist.
Als je niet hebt opgenomen het, het zal niet compileren.
Dus wanneer je ook gebruikt bepaalde functionaliteit, moet
u de include gebruiken.
De syntaxis voor zover header-bestanden go, ze zijn hoofdlettergevoelig.
Hoofdlettergevoeligheid betekent: hoofdletters of kleine letters.
Het maakt uit of je doe het een of het ander.
Dus je moet altijd schrijf ze in kleine letters.
Je header-bestanden zouden in moeten staan kleine letters omdat anders
bepaalde systemen kunnen interpreteren ze hebben een andere betekenis.
Er zijn twee manieren om op te nemen: header-bestanden in een programma.
U kunt punthaken gebruiken zoals pond omvatten
Jason. h en punthaken.
En wat dit meestal betekent, is dat het is de preprocessor vertellen om
naar een bestand te zoeken in een soort systeemdirectory.
Het is meestal een standaardbibliotheek die: wordt geleverd met de programmeertaal c.
Je kunt ook dubbele aanhalingstekens gebruiken.
Dubbele aanhalingstekens betekenen meestal dat het betekent het is een door de gebruiker gedefinieerd headerbestand.
Het is er een die je hebt gemaakt als een ontwikkelaar
die niet met de programmeertaal c kwam, maar je wilt die header daar hebben
omdat je wat code wilt hergebruiken.
Dus het gaat ook zeggen kijk in de huidige directory.
Elke c-compiler die voldoet naar de C11-standaard zal een
set standaardkopteksten hebben de meegeleverde bestanden.
Dit zijn slechts header-bestanden die bibliotheken vertegenwoordigen.
C-functionaliteit die komt met de taal.
Wanneer u de include-richtlijn gebruikt, het is gebruikelijk om de andere preprocessor-richtlijnen te gebruiken als dat niet het
geval is: zoeken en definiëren, zodat u het bestand niet meer dan
één keer opneemt.
Dit is voor efficiëntie.
Dus als je programma printf gebruikt, bijvoorbeeld, output weergeven op
het scherm, u wilt uw programma vertellen, hey, ik moet deze
extra functionaliteit in de standaardbibliotheek opnemen.
Je wilt het niet vertellen voeg het meer dan eens toe omdat de preprocessor
veel zal doen dingen die het niet hoeft te doen.
Dus meestal zul je gebruiken indien niet gedefinieerd.
Dus je zult hier iets van zien van de voorbeelden die
ik geef waar ik de include hierin verpak als niet definieert en definieert uitspraken.
Hier is een voorbeeld van een header-bestand in de inhoud ervan.
Je hebt misschien een header-bestand, er staan wat opmerkingen in, er kunnen
andere dingen in staan.
Het heeft voornamelijk functie: prototypes erin, maar het kan
constanten hebben, het kan typedefs hebben.
Dit zijn enkele concepten die wij begrijpen het nog niet.
Maar ik probeer het alleen te illustreren proberen u te helpen begrijpen
dat het veel verschillende dingen bevat.
Maar nogmaals voor onze studio. h, daar is iets daarin genaamd printf dat de printf-functie definieert
zodat we de implementatiecode daarvoor kunnen vinden als
we linken.
Dus hier zijn enkele functie-prototypes.
Functie-prototypes zijn: alleen namen van functies.
We weten wat een functie is hopelijk is het nu gewoon
een manier om code te groeperen.
We zullen het hebben over functies later veel meer in detail.
Dus een header-bestand kan bevatten: veel, veel verschillende dingen.
Het kan gedefinieerde richtlijnen bevatten, constanten, structuurdeclaraties.
Dit is weer een manier om anders te groeperen variabelen, groepeer verschillende gegevens.
Typedef-instructies hebben te maken met datatypes.
Daar praten we meer over.
Maar functie-prototypes zijn: echt de belangrijkste.
Ze vertellen je hoe het werkt zijn gedefinieerd, zodat de compiler de code kan
genereren die nodig is.
Uitvoerbare code gaat in een broncodebestand.
Broncodebestand eindigt in de . c extensie.
Normaal uitvoerbare code gaat niet in een headerbestand.
Er zijn enkele uitzonderingen.
Wanneer je dingen inline wilt doen wat weer een
efficiëntie-ding is als je kunt zetten
broncode in header-bestanden, maar meestal een . h-bestand, a header-bestand zal geen implementatiecode bevatten.
Het gaat regels bevatten van code voor alleen definities.
Oké, er gaat niet enige logica in te zitten.
Het zullen alleen maar definities zijn.
Deze functie bestaat.
Die functie bestaat.
Deze constanten bestaan.
Deze verschillende structuren bestaan.
Ze zeggen niet hoe deze code doet wat het doet.
Het vertelt je alleen dat het er is.
Het is nodig voor de compiler om de koppeling te genereren.
Oké, dus je gaat maak uw eigen header-bestanden.
Je gaat de systeemkoptekst gebruiken bestanden voor extra functionaliteit.
Het is een concept dat je nodig hebt begrijpen voordat u
verder gaat met het schrijven van c-programma's, want je
zult deze richtlijn in alle programma's zien.
En het vertelt gewoon het programma nogmaals dat we ergens een
extra code opnemen.
We nemen een extra definitie op code zodat we
nu deze verschillende functies hierin kunnen aanroepen andere code in ons c-programma.
Dus ik hoop dat het logisch is.
Nogmaals, het is geen echte ingewikkeld begrip.
We voegen extra code toe.
Het is vrij intuïtief, maar we zullen het doornemen
we zullen gaandeweg meer voorbeelden geven.
Dank u.