Video: 6- Corso di Word: Creare un Indice / Sommario 2024
Man mano che i progetti multi-modulo in C diventano più complessi, la prima parte di ciascun file di codice sorgente cresce sempre più a lungo: più prototipi, più costanti e più variabili e strutture globali sono richiesti per ogni modulo Piuttosto che sovraccaricare il codice con ridondanze, è possibile creare un file di intestazione per il progetto.
Un file di intestazione contiene praticamente tutto ciò che è possibile inserire in un file di codice sorgente. Nello specifico, dovresti inserire gli elementi nel file di intestazione che altrimenti andrebbero in ogni modulo del codice sorgente. Ecco un file di intestazione di esempio:
FILE HEADER EX2403. H
#include #include / * prototypes * / void fillstructure (void); void printstructure (void); / * costanti * / / * variabili * / struct thing {nome char [32]; int età;}; typedef struct thing human;
Il file di intestazione mostrato nel file Header ex2403. h inizia con alcune direttive include, che va bene; finché i file di intestazione sono richiesti da ciascun modulo nel programma, è possibile specificarli nel proprio file di intestazione. Alcuni programmatori scelgono di farlo; altri no.
Due prototipi sono specificati nelle righe 6 e 7. Ancora una volta, un motivo per avere un file di intestazione è quello di prototipare, specialmente tra più moduli.
Il file di intestazione ex2403. h manca di costanti, anche se posizionare questi elementi in un file di intestazione è abbastanza comune. C'è un commento alla riga 9 nel caso in cui il programma aumenti le costanti in un secondo momento.
Infine, la struttura è definita alla riga 13. Quindi la riga 18 usa typedef in modo che la parola human (anziché struct thing) possa essere usata nel codice.
Altri elementi popolari da includere in un file di intestazione sono le macro. Queste sono direttive del preprocessore che possono anche aiutare a semplificare il codice.
Per utilizzare un file di intestazione locale nel codice, lo si specifica su una riga, proprio come qualsiasi altro file di intestazione. La grande differenza è che vengono usate doppie virgolette invece di parentesi angolari. Ad esempio:
#include "ex2403. H"
Il compilatore cerca il nome file dell'intestazione tra virgolette nella directory corrente, insieme ai file del codice sorgente. Se il file non si trova in quella directory, è necessario specificare un nome di percorso, come in
#include "intestazioni / ex2403. H"
Progetto ex2403 principale. c Codice sorgente mostra come il file di intestazione nel file di intestazione ex2403. h è usato.
PROJECT EX2403 MAIN. C CODICE SORGENTE
#include "ex2403. H" persona umana; int main () {fillstructure (); printstructure (); return 0;} void fillstructure (void) {printf ("Inserisci il tuo nome:"); fgets (nome persona, 31, stdin); printf ("Inserisci la tua età:"); scanf ("% d", & person.età);} void printstructure (void) {printf ("You are% sn", person. name); printf ("E hai% d anni. n", persona. età);}
Linea 1 del codice sorgente mostrato nel progetto ex2403 principale. c Codice sorgente include il file di intestazione personalizzato, ex2403. h. L'umano typedef viene quindi utilizzato alla riga 3. Ecco fatto! Non ci sono altre dichiarazioni necessarie nel codice sorgente perché sono state gestite dall'intestazione personalizzata.
Esercizio 1 : Crea un nuovo progetto in Codice:: Blocchi. Crea un nuovo file di intestazione, ex2403. h, per il progetto, e copia il codice dal file di intestazione ex2403. h in quel file. Copia il codice sorgente dal progetto ex2403 principale. c Codice sorgente nel principale. c file. Costruisci ed esegui.
Esercizio 2 : Suddivide le funzioni fillstructure () e printstructure () dal progetto ex2403 main. c Codice sorgente in modo che ciascuno appaia nel proprio file di codice sorgente, input. c e uscita. c, rispettivamente. Costruisci il programma multi-modulo.