🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: nl.comp.programmeren
Article #732

Re: Opbouw grote programma's via opsplitsing source-files

#732
From: Floris van den Berg
Date: Sun, 07 Nov 1999 00:00
35 lines
2586 bytes
[knip]
> Wow, ik denk dat ik het hier verkeerd voor heb.  Eerst even een vraagje
> voor de duidelijkheid: wat veronderstel jij dat er in je headerfiles
> staat?  Enkel hoe de functies er uit zien (zonder body) of mīŋŊt de body
> van de functies er bij?  Als je veronderstelt dat in je headerfiles ook
> de body van de functies uitgewerkt staat kan ik in je redenering komen.
> Als je echter in je headerfiles enkel de  beschrijving (zonder body) van
> je functies zet, moet ik volgens mij toch die #include "sub.c"
> schrijven.  Als leidraad gebruik ik 'Practical C Programming' van
> O'Reilly en op pagina 305 heeft men het toch over 3 soorten files:

Ik heb het vermoeden dat je niet weet hoe een linker werkt. Jij
verondersteld dat de compiler alle .c files gelinkt moet heeft staan in 1
main bestand, maar dat is belist niet waar. Voorbeeld:

main.c  <--- hoofd bestand
sub.c <--- sub bestand
sub.h <---- header voor sub bestand

main.c include sub.h. Sub.c include eveneens sub.h.

Hoe compileert de compiler dit nu? Eerst wordt main.c geinclude. Main.c
importeert de definities van de functies in sub.h. De compiler weet nu dus
welke functies er in sub.c zitten, zonder die file te includen. Sub.c wordt
gecompileerd met de zelfde definities van de functies. Main.c en sub.c weten
nu beide van het bestaan van de functies af.

Aan het eind van het compilatieproces hou je main.obj en sub.obj over. Beide
files hebben de definities voor elkaars functies in zich. Nu gaat de linker
aan de slag, vindt de overeenkomende functie definities en koppelt ze aan
elkaar.

Ik hoop dat het zo duidelijk is.

Floris
Technical Details
Message-ID: <803lv1$2epf4$1@reader3.wxs.nl>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <38249DCC.ABDE8533@skynet.be> <802cvd$i3f$1@news1.xs4all.nl> <38253EA9.1D7A1ADF@skynet.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: 107324,bea50703bd2c4537
X-Google-Attributes: gid107324,public
X-Google-Thread: 100a19,bea50703bd2c4537
X-Google-Attributes: gid100a19,public
X-Google-Thread: fcea4,bea50703bd2c4537
X-Google-Attributes: gidfcea4,public
From: "Floris van den Berg" <flvdberg@wxs.nl>
Subject: Re: Opbouw grote programma's via opsplitsing source-files
Date: 1999/11/07
Message-ID: <803lv1$2epf4$1@reader3.wxs.nl>
X-Deja-AN: 545493552
References: <38249DCC.ABDE8533@skynet.be> <802cvd$i3f$1@news1.xs4all.nl> <38253EA9.1D7A1ADF@skynet.be>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
X-Complaints-To: abuse@wxs.nl
X-Trace: reader3.wxs.nl 941972257 2581988 195.121.176.148 (7 Nov 1999 10:57:37 GMT)
Organization: Planet Internet
X-MSMail-Priority: Normal
NNTP-Posting-Date: 7 Nov 1999 10:57:37 GMT
Newsgroups: nl.comp.programmeren,be.comp.programming,be.comp.os.linux