/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
opdeling af program
Fra : Dorte Klerke


Dato : 04-08-03 21:14

Hej
Jeg er i gang med at lave et spil, og indtil videre virker det ikke så
overskueligt, så derfor vil jeg gerne dele programmet op i flere filer. Det
går fint nok med at lave en headerfil, men de andre c-filer synes jeg ikke
rigtig programmet så kan finde. I den bog jeg har, skriver de ikke noget med
at man skal skrive:

#include "fil.c"

Hvordan kan programmet så finde ud af hvor de forskellige funktioner er?

Dorte



 
 
Kent Friis (04-08-2003)
Kommentar
Fra : Kent Friis


Dato : 04-08-03 21:41

Den Mon, 4 Aug 2003 22:14:22 +0200 skrev Dorte Klerke:
>Hej
>Jeg er i gang med at lave et spil, og indtil videre virker det ikke så
>overskueligt, så derfor vil jeg gerne dele programmet op i flere filer. Det
>går fint nok med at lave en headerfil, men de andre c-filer synes jeg ikke
>rigtig programmet så kan finde. I den bog jeg har, skriver de ikke noget med
>at man skal skrive:
>
>#include "fil.c"
>
>Hvordan kan programmet så finde ud af hvor de forskellige funktioner er?

Med gcc skriver du fx:

gcc -o spil main.c level.o monsters.o
eller
gcc -o spil main.o level.o monsters.o

for at compile .o filen:

gcc -c level.c

eller bare: make level.o

Mvh
Kent
--
Linux 0.12 is out
Windows 2003 is now obsolete!!!

Dorte Klerke (04-08-2003)
Kommentar
Fra : Dorte Klerke


Dato : 04-08-03 21:48

Skal man så ikke skrive include?


"Kent Friis" <leeloo@phreaker.net> wrote in message
news:bgmgbu$9te$2@sunsite.dk...
> Den Mon, 4 Aug 2003 22:14:22 +0200 skrev Dorte Klerke:
> >Hej
> >Jeg er i gang med at lave et spil, og indtil videre virker det ikke så
> >overskueligt, så derfor vil jeg gerne dele programmet op i flere filer.
Det
> >går fint nok med at lave en headerfil, men de andre c-filer synes jeg
ikke
> >rigtig programmet så kan finde. I den bog jeg har, skriver de ikke noget
med
> >at man skal skrive:
> >
> >#include "fil.c"
> >
> >Hvordan kan programmet så finde ud af hvor de forskellige funktioner er?
>
> Med gcc skriver du fx:
>
> gcc -o spil main.c level.o monsters.o
> eller
> gcc -o spil main.o level.o monsters.o
>
> for at compile .o filen:
>
> gcc -c level.c
>
> eller bare: make level.o
>
> Mvh
> Kent
> --
> Linux 0.12 is out
> Windows 2003 is now obsolete!!!



Kent Friis (04-08-2003)
Kommentar
Fra : Kent Friis


Dato : 04-08-03 21:59

Den Mon, 4 Aug 2003 22:47:51 +0200 skrev Dorte Klerke:
>Skal man så ikke skrive include?

jo, include er nødvendig for .h filen.

>"Kent Friis" <leeloo@phreaker.net> wrote in message
>news:bgmgbu$9te$2@sunsite.dk...
>> Den Mon, 4 Aug 2003 22:14:22 +0200 skrev Dorte Klerke:
>> >Hej
>> >Jeg er i gang med at lave et spil, og indtil videre virker det ikke så
>> >overskueligt, så derfor vil jeg gerne dele programmet op i flere filer.
>Det
>> >går fint nok med at lave en headerfil, men de andre c-filer synes jeg
>ikke
>> >rigtig programmet så kan finde. I den bog jeg har, skriver de ikke noget
>med
>> >at man skal skrive:
>> >
>> >#include "fil.c"
>> >
>> >Hvordan kan programmet så finde ud af hvor de forskellige funktioner er?
>>
>> Med gcc skriver du fx:
>>
>> gcc -o spil main.c level.o monsters.o
>> eller
>> gcc -o spil main.o level.o monsters.o
>>
>> for at compile .o filen:
>>
>> gcc -c level.c
>>
>> eller bare: make level.o
>>
>> Mvh
>> Kent
>> --
>> Linux 0.12 is out
>> Windows 2003 is now obsolete!!!
>
>


--
6.0 FDiv 3.0 = 1.999773462873 - Intel Pentium bug

Lasse Westh-Nielsen (04-08-2003)
Kommentar
Fra : Lasse Westh-Nielsen


Dato : 04-08-03 22:19

"Dorte Klerke" <dorte@home2.gvdnet.dk> wrote :

> Hej
> Jeg er i gang med at lave et spil, og indtil videre virker det ikke så
> overskueligt, så derfor vil jeg gerne dele programmet op i flere filer.
Det
> går fint nok med at lave en headerfil, men de andre c-filer synes jeg ikke
> rigtig programmet så kan finde. I den bog jeg har, skriver de ikke noget
> med at man skal skrive:
>
> #include "fil.c"
>
> Hvordan kan programmet så finde ud af hvor de forskellige funktioner er?

Ifølge "Kernighan & Richie: The C programming language - second edition",
afsnit 4.11, så bruges #include på følgende måde (frit oversat):

"#include bruges til at inkludere filers indhold ved kompilering. Det er et
direktiv der håndteres af præ-processoren.

Enhver linie af formen

#include "filnavn"

eller

#include <filnavn>

erstattes af indholdet i filen filnavn.

Hvis man skriver #include "filnavn", så leder præ-processoren efter filen
filnavn der hvor sourcekode-filen befinder sig. Hvis man skriver #include
<filnavn> så søges der andre steder..."

Det kan så bruges på flere måder, den mest brugte er vist at gøre hver fil
til et "modul" i sig selv: det indebærer, at hver kode-fil (.c fil) har en
tilhørende headerfil med funktionsprototyper og lignende ting (.h fil).
Andre kodefiler kan så inkludere headerfilen, således at disse kan
kompileres separat uden selve koden til de inkluderede filer, og senere
linkes sammen med de andre separat kompilerede kodefiler. Det betyder, at
når du genkompilerer een fil, så behøver du ikke genkompilerede de andre
nødvendigvis, men bare linke, og det sparer tid. Det afhjælper også c's
irriterende feature med at ting skal erklæres tekstuelt før de bruges. Og
det gør dit projekt mere oveskueligt.

Man kan også bare inkludere kodefiler i andre kodefiler og kompilere det
hele på een gang, men det er som regel en dårlig ide, og nærmest stik imod
hele ideen med modularisering.

Med venlig hilsen

- Lasse


--
Lasse Westh-Nielsen
lasse@daimi.au.dk




Bertel Brander (04-08-2003)
Kommentar
Fra : Bertel Brander


Dato : 04-08-03 23:16

Dorte Klerke wrote:

> Hej
> Jeg er i gang med at lave et spil, og indtil videre virker det ikke så
> overskueligt, så derfor vil jeg gerne dele programmet op i flere filer. Det
> går fint nok med at lave en headerfil, men de andre c-filer synes jeg ikke
> rigtig programmet så kan finde. I den bog jeg har, skriver de ikke noget med
> at man skal skrive:
>
> #include "fil.c"
Man kan godt inkludere c-file, men det er normalt ikke en god ide.
>
> Hvordan kan programmet så finde ud af hvor de forskellige funktioner er?

<test.c>
#include "myhfile.h"
int main(void)
{
myfunc();
return 0;
}
</test.c>

<test2.c>
#include <stdio.h>
#include "myhfile.h"
void myfunc(void)
{
printf("I'm called\n");
}
</test2.c>

<myhfile.h>
extern void myfunc(void);
</myhfile.h>

For at kompilere:

gcc test.c test2.c -o test.exe
bcc32 test.c test2.c
cl test.c test2.c

Afhængig af hvilken kompiler du bruger.

/b


Dorte Klerke (05-08-2003)
Kommentar
Fra : Dorte Klerke


Dato : 05-08-03 08:34

Tak for hjælpen Lasse og Bertel, dejlig med noget forklaring bag det hele og
eksempler.

Dorte

"Bertel Brander" <bertel@post4.tele.dk> wrote in message
news:3f2eda5a$0$32519$edfadb0f@dread16.news.tele.dk...
> Dorte Klerke wrote:
>
> > Hej
> > Jeg er i gang med at lave et spil, og indtil videre virker det ikke så
> > overskueligt, så derfor vil jeg gerne dele programmet op i flere filer.
Det
> > går fint nok med at lave en headerfil, men de andre c-filer synes jeg
ikke
> > rigtig programmet så kan finde. I den bog jeg har, skriver de ikke noget
med
> > at man skal skrive:
> >
> > #include "fil.c"
> Man kan godt inkludere c-file, men det er normalt ikke en god ide.
> >
> > Hvordan kan programmet så finde ud af hvor de forskellige funktioner er?
>
> <test.c>
> #include "myhfile.h"
> int main(void)
> {
> myfunc();
> return 0;
> }
> </test.c>
>
> <test2.c>
> #include <stdio.h>
> #include "myhfile.h"
> void myfunc(void)
> {
> printf("I'm called\n");
> }
> </test2.c>
>
> <myhfile.h>
> extern void myfunc(void);
> </myhfile.h>
>
> For at kompilere:
>
> gcc test.c test2.c -o test.exe
> bcc32 test.c test2.c
> cl test.c test2.c
>
> Afhængig af hvilken kompiler du bruger.
>
> /b
>



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408186
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste