Video: Week 4, continued 2024
Etter hvert som flere modulprosjekter i C blir mer komplekse, finner du den første delen av hver kildekodefil som vokser lengre og lengre: Flere prototyper, flere konstanter og flere globale variabler og strukturer er nødvendig for hver modul. I stedet for å belaste koden med redundanser, kan du opprette en headerfil for prosjektet.
En headerfil inneholder omtrent alt du kan legge inn i en kildekodefil. Spesielt bør du sette elementer i headerfilen som ellers ville gå inn i hver kildekodemodul. Her er en prøvekoplingsfil:
HOVEDFIL EX2403. H
#include # include / prototypes * / void fillstructure (void); ugyldig utskriftsstruktur (tomrom); / * konstanter * / / * variabler * / struct ting {karnavn [32]; int alder;}; typedef struct ting menneskelig;
Overskriftsfilen som vises i headerfilen ex2403. h starter med noen inkluderer direktiver, noe som er fint; så lenge som headerfiler kreves av hver modul i programmet, kan du spesifisere dem i din egen headerfil. Noen programmerere velger å gjøre det; andre gjør det ikke.
To prototyper er spesifisert på linjer 6 og 7. Igjen er en grunn til å ha en headerfil å prototype, spesielt på tvers av flere moduler.
Overskriftsfilen ex2403. h mangler konstanter, men å plassere disse elementene i en headerfil er ganske vanlig. Det er en kommentar på Linje 9 hvis programmet vokser konstanter senere.
Endelig er strukturens ting definert på linje 13. Deretter bruker linje 18 typedef slik at ordet human (i stedet for struct ting) kan brukes i koden.
Andre populære elementer som skal inkluderes i en headerfil er makroer. Dette er preprosessedirektiver som også kan bidra til å forenkle koden din.
Hvis du vil bruke en lokal header-fil i koden, angir du den på en linje, akkurat som hvilken som helst annen headerfil. Den store forskjellen er at doble anførselstegn brukes i stedet for vinkelbeslag. For eksempel:
#include "ex2403. H"
Kompilatoren ser etter overskriftens filnavn i dobbelte sitater i gjeldende katalog, sammen med kildekodefilen / filene. Hvis filen ikke er i den katalogen, må du spesifisere et stinavn, som i
#include "headers / ex2403. H"
Prosjekt ex2403 main. c Kildekode demonstrerer hvordan headerfilen i Header File ex2403. h er brukt.
PROJEKT EX2403 HOVED. C KILDE KODE
# inkluderer "ex2403. H" menneskelig person; int main () {fillstructure (); printstructure (); return 0;} void fillstructure (void) {printf ("Skriv inn ditt navn:"); fgets (personnavn, 31, stdin); printf ("Skriv inn din alder:"); scanf ("% d", og person.alder);} ugyldig utskriftsstruktur (tomrom) {printf ("Du er% sn", person. navn); printf ("Og du er% d år gammel. n", person. alder);}
Linje 1 av kildekoden vist i Project ex2403 main. c Kildekode inneholder den egendefinerte overskriftsfilen, ex2403. h. Typedef-mennesket blir da brukt på linje 3. Det er det! Ingen andre erklæringer er nødvendige i kildekoden fordi de har blitt håndtert av den egendefinerte overskriften.
Øvelse 1 : Opprett et nytt prosjekt i kode:: Blokker. Opprett en ny headerfil, ex2403. h, for prosjektet, og kopier koden fra Header File ex2403. h til den filen. Kopier kildekoden fra Project ex2403 main. c Kildekode i hovedlisten. c-fil. Bygg og løp.
Øvelse 2 : Del ut strukturene for fillstruktur () og printstructure () fra Project ex2403 main. c Kildekode slik at hver vises i sin egen kildekodefil, input. c og utgang. c, henholdsvis. Bygg flermodulprogrammet.