Hvordan strukturere et C-program

Fra mn/ifi/INF1060
Revisjon per 22. okt. 2010 kl. 23:33 av Bendiko@uio.no (diskusjon | bidrag) (Ny side: Når et program vokser kan det vært lurt å vurdere om noe av koden bør skilles ut i egne filer. Hvis vi har en fil oblig1.c som du ønsker å dele opp, oppretter vi en ny fil med filend…)

(diff) ← Eldre revisjon | Nåværende revisjon (diff) | Nyere revisjon → (diff)
Hopp til: navigasjon, søk

Når et program vokser kan det vært lurt å vurdere om noe av koden bør skilles ut i egne filer. Hvis vi har en fil oblig1.c som du ønsker å dele opp, oppretter vi en ny fil med filendelse "c", f.eks. linked_list.c. I denne nye filen kan vi legge metodene som håndtere den lenkede listen.

Eksempelvis kan vi si at filene har følgende metoder:

oblig1:
- main
- print_list

linked_list.c
- void add(char *str)
- char *get(int index)

For at du skal kunne kalle disse metodene fra oblig1.c må vi fikse og ordne litt. Under kompilering må nemlig metodene være kjent når du kaller de, og slikt skjer ikke automatisk slik som i Java. Du må selv fortelle oblig1.c at vi har disse metodene tilgjengelig. Måten det gjøres på er å definere en header-fil med filendelse "f", linked_list.h og definere metodene i denne filen slik:

void add(char *str);
char *get(int index);

I oblig1.c legger vi så til følgende ved de andre include-linjene:

#include "linked_list.h"

Ved kompilering ser kompilatoren du disse metodene er definert.

Når du så kompilerer må du oppgi begge filene:

gcc oblig1.c linked_list.c -o oblig1