PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ich raff es nicht mit eigenen Module



22-09-2000, 17:56
Ich möchte einige Funktion in eine 2.Datei ablegen.
Habe ich auch schon gemacht und auch eine Headerdatei geschrieben.

Aber wie muss ich das jetzt compilieren??

muss ich die 2.Datei auch compilieren und wie ohne eine main-Funktion.

wie muss ich die 1.Datei compilieren, damit ich auch die Funktion in der 2.Datei nutzten kann.

Danke

22-09-2000, 18:12
hi,
mhm,
ich schreib das nun fast wortwoertlch "got to c" ab

kompilieren und linken:

1. bei gcc schalter -c einsetzen
- also du hast zum beispiel 3 dateien: a.c, b.c, und g.c

= gcc -c a.c
gcc -c b.c
gcc -c g.c

daraus entstehen folgende objektdateien:

a.o, b.o, g.o

dann linken:

gcc a.o b.o g.o dass ergibt dann a.out (ausfuehrbare datei)

hoffentlich stimmts, lass mich gern belehren .-)

gruss nomad

25-09-2000, 23:24
hallo,

anbei ein kleines beispiel fuer das "auslagern" von funktionen:

/*1. Datei: haupt.c*/

#include <stdio.h>
#include "meine.h"

int main(void)
{
double wert, vol;

printf("Bitte Zahl: ");
scanf("%lf", &wert);

vol = kugelvol (wert);

printf("\n%18.8lf\n", vol);

return 0;
}


2. Datei: /*kugelvol.c*/

#include <stdio.h>

double kugelvol (double radius)
{
double erg;

erg = 4.0 / 3.0 * radius * radius * radius * 3.14159;

return erg;
}


3. Datei: /*meine.h*/

double kugelvol (double);

Präprozessor soll meine.h einbinden
Funktion kugelvol wird ihm in der meine.h bekanntgemacht, d.h., auch die Parameter, die die Funktion übergibt bzw. zurückgibt. hier beide vom Typ double.
der 2.Datei wird der Radius übergeben, es erfolgt die Berechnung und mit return erfolgt die Ergebnisrueckgabe an das hauptprogramm main()

in main erfolgt die ergebnisausgabe.

compilieren mit gcc:

cc -o ausfuer haupt.c kugelvol.c

ausfuer.out

fertig!

unter windows muessen alle dateien einem Projekt angehoehren, sonst wird's nichts.

viel spass mit c

Franky --;-)

26-09-2000, 10:40
...äääähm Tschuldigung....

ich will ja nicht stören, aber ich habe das nun schon öfter gelesen und staune immer wieder, da ich ja auch kein C-Guru bin...

<tt>#include</tt>

Was heißt das? Ist das ein eigenständiger Befehl, der ohne Argumente auskommt oder soll das heißen "alle includes, die halt sonst noch so kommen"?

Danke schon mal,

djlauk

thommy
26-09-2000, 11:22
Hi djaulk,

das ist kein eigenständiger Befehl, sondern einzig ein Problem mit der Darstellung von spitzen Klammern in HTML. Steht im Klartext &lt;stdio&gt;, so heißt es für einen Browser, dass "stdio" ein HTML-Tag ist. Dem Browser ist der Tag unbekannt, also ignoriert er ihn.

Nochmals an alle: Wer &lt; und &gt; einsetzen will, muss dies als &amp;lt; und &amp;gt; einfügen, niemals im Klartext!!!

Thomas

26-09-2000, 19:35
hi WWG2000,

entschuldige, dass ich dich verwirrt habe. es war nicht meine absicht. ich weiss, wie das ist, wenn man tolle tipps kriegt, und nur ein oder zwei zeichen stimmen nicht. da probiert man rum und wird nicht ruhiger dabei...
in der 1. Programmzeile muss es jeweils richtig lauten
#include &lt stdio.h &gt

hi tommy,

das mit den tags von html stimmt. hab's gerade ausprobiert..ich habe es bis soeben auch nicht gewusst. vielen dank fuer den hinweis. schoen, so lernen alle dazu.

Franky

26-09-2000, 21:36
Hi Leute!

Freut mich, dass ich mit meiner dummen Frage helfen konnte... http://www.linuxforen.de/ubb/wink.gif

djlauk

27-09-2000, 15:31
Tach Franky

Eigendlich war mir schon klar das nicht nur #include meintest sondern das da noch irgendwas hingehört. Ich dachte zwar das es ein Platzhalter für andere Header Datein wäre, aber das es nicht alleine stehen konnte was mir klar.