Hallo,
Ich habe ein Problem und zwar weiß ich nicht, wie ich das Programm unten
in Header, *.c und main Dateien aufteilen soll. Ich weiß wohl, dass in
den Header die Prototypen der Funktionen rein müssen, aber was ich dann
noch und wie im c-file stehen lassen muss und was in die main Datei
gehört, weiß ich nicht. Habe alles mögliche rumprobiert und alles in
einem Projekt file gesammelt aber es klappt einfach nicht. Bin wohl noch
blutiger Anfänger aber es ist ja noch kein Meister vom Himmel
gefallen...:-)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
struct comp
{
float real;
float img;
};
struct comp cfadd(struct comp a , struct comp b)
{
struct comp c;
c.real=a.real+b.real;
c.img=a.img+ b.img;
return c;
}
struct comp cfmul(struct comp a , struct comp b)
{
struct comp c;
c.real=a.real*b.real-a.img*b.img;
c.img=a.real*b.img+ a.img*b.real;
return c;
}
double cfabs(struct comp a)
{
double c;
c = sqrtf(a.real*a.real+a.img*a.img);
return c;
}
{ struct comp a,b,c;
printf("Bitte Realteil und Imagin\x84rteil eingeben ");
scanf("%f%f", &a.real,&a.img);
printf("Bitte Realteil und Imagin\x84rteil eingeben ");
scanf("%f%f", &b.real,&b.img);
printf("a = %8.2f + %8.2fi\n", a.real, a.img);
printf("b = %8.2f + %8.2fi\n", b.real, b.img);
c = cfadd(a,b);
printf("a+b = %8.2f +%8.2fi\n", c.real, c.img);
c = cfmul(a,b);
printf("a*b = %8.2f +%8.2fi\n", c.real, c.img);
printf("a hat die L\x84nge %4:2d\n",cfabs(a));
printf("b hat die L\x84nge %4:2d\n",cfabs(b));
system ("pause");
}
Ich bin für jede Hilfe dankbar!!!!!
Gruß Fizzle
Aha Aha, ja so in etwa hatte ich es auch schon aufgeteilt, also mein
Header hatte ich schon so wie ihr geschrieben hattet. Ich habe
allerdings im *.c modul dann die Funktions-deklarationen entfernt...weil
sie ja dann schon im Header stehen.Da sehe ich keinen Sinn...wieso
schreibt man die Prototypen der Funktionen extra noch mal in den Header
und lässt sie aber dennoch im *.c modul??? Na dann setz ich mich noch
einmal dahinter....eine Frage habe ich jedoch noch.Ich arbeite mit dem
Dev c++ Compiler. Muss ich dann, um eine vernünftige ausführbare Datei
zu kriegen, ein Projekt-file mit den drei Komponenten erstellen, gibts
da besondere Regeln oder muss man etwas beachten?
Vielen, vielen Dank für die Hilfe!!!!!!!!!!!1
Gruß Felix
Fizzle wrote:
> Ich habe allerdings im *.c modul dann die Funktions-deklarationen> entfernt...weil sie ja dann schon im Header stehen.Da sehe ich keinen> Sinn...wieso schreibt man die Prototypen der Funktionen extra noch mal in> den Header und lässt sie aber dennoch im *.c modul???
Die Deklarationen stehen ja auch nicht in der *.c Datei. Sie werden
durch das
1
#include"comp.h"
in comp.c eingebunden.
In der comp.c Datei stehen die Definitionen.