C – Fördela på fler filer (nybörjarfråga)

Här diskuteras programmering och utveckling
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

C – Fördela på fler filer (nybörjarfråga)

Inlägg av Johnny Rosenberg »

Jag har nog fått totalt hjärnsläpp, men det underlättar ju inte heller att man är ständig nybörjare på detta (det blir lätt så när man gör lite då och då med väldigt långa mellanrum).

Har gjort ett superenkelt exempel som bara inte kan gå snett:

Kod: Markera allt

#include <stdio.h>

double testfunction(double a, double b){
	return a*b/(a+b);
}

int 
main (int argc, char *argv[])
{
	double x;
	x=testfunction(3.25, 7.91);
	printf("%2.8f\n",x);

	return 0;
}
Funkar fint. Får svaret 2.30353943, vilket verkar stämma med självaste verkligheten.

Men så vill jag då testa att lägga funktionen i en separat fil, inte för att det behövs utan för att lära mig, helt enkelt.

Så, vi har då Test.c:

Kod: Markera allt

#include <stdio.h>

int 
main (int argc, char *argv[])
{
	double x;
	x=testfunction(3.25, 7.91);
	printf("%2.8f\n",x);

	return 0;
}
Dessutom har vi då Testfunction.c:

Kod: Markera allt

double testfunction(double a, double b){
	return a*b/(a+b);
}
Dags att kompilera skiten (som det skulle visa sig…):

Kod: Markera allt

Experiment$ gcc -o Test Test.c Testfunction.c
Experiment$ ./Test
1075815383.00000000
Experiment$
Ett inte helt korrekt svar, som synes.
Givetvis är jag medveten om att jag är ute och cyklar rejält här, men tyvärr kan jag inte se hur jag skulle gjort istället…
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: C – Fördela på fler filer (nybörjarfråga)

Inlägg av Johnny Rosenberg »

Okej, jag hade glömt att ta med prototypen för funktionen ifråga. La till den och då fungerade det.

Nästa steg är då att lägga prototypen i någon headerfil, men där är det också något jag ännu fått om bakfoten, så nu är väl nästa steg att försöka få även det att fungera.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: C – Fördela på fler filer (nybörjarfråga)

Inlägg av Johnny Rosenberg »

Märkligt vad det kan göra nytta att titta på TV… Innan satt jag här och kunde inte komma på hur jag skulle gå vidare. Så sätter jag mig i soffan och tittar på TV en dryg timme, och när jag är tillbaka här så tar det någon minut innan jag löst det…

Kanske bara var för trött i huvudet innan, antagligen.

Så vad har man lärt sig nu då?

Förutom det där med prototyperna – jag hade av någon anledning fått för mig att man bara behövde dem i C++, ingen aning om varför – så är det ju då var man placerar dem. Tydligen kan man ha dem antingen direkt i den fil där man använder funktionen ifråga, eller i en headerfil. Denna headerfil ska då ”inkluderas” (#include) i den fil där man använder funktionen, verkar det som. Har inte testat precis alla möjligheter, så jag vet inte helt säkert om det finns några undantag.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Skriv svar

Återgå till "Programmering och webbdesign"