![]() |
[C] Probleme mit Aufgabe und Variablen
Hallo,
zuerst: KEINE ANGST! ich will hier keine lösung für meine aufgabe, die ich zu bearbeiten habe. ich hänge grade nur an einer stelle. Ich habe folgende aufgabe (auch wenn ich das meiste sinnfrei finde, wie das gelöst ist): Zitat:
Code:
Die anderen Dateien sehen bei mir wie folgt aus:
#include <stdio.h>
#include "einlesen.c" #include "average.c" #include "quotient.c" #include "produkt.c" #include "summe.c" #include "differ.c" extern void einlesen (float *, float *); extern void average (float, float *); extern void quotient (float, float *); extern void produkt (float, float *); extern float summe (float); extern float differ (float); float a; int main (void) { float b; float mittel, quot, prod, summ, diff; einlesen (&a, &b); average (b, &mittel); quotient (b, "); produkt (b, &prod); summ = summe (b); diff = differ (b); printf ("\n a = %6.2f, b = 6.2f",a,b); printf ("\n der Mittelwert von a und b ist %6.2f", mittel); printf ("\n das Produkt a*b ist %6.2f", prod); printf ("\n der Quotient a/b ist %6.2f", quot); printf ("\n die Summe a + b ist %6.2f", summ); printf ("\n die Differenz ist %6.2f", diff); return 0; } einlesen.c:
Code:
average.c:
#include <stdio.h>
void einlesen (float * first, float * second) { printf ("Bitte a eingeben: "); scanf ("%f", first); printf ("Bitte b eingeben: "); scanf ("%f", second); }
Code:
quotient.c:
void average (float num, float * res) {
*res = (a / num) / 2; }
Code:
usw. eigentlich nichts späktakuläres (und total unsinnig alles in einzelne files zu packen, aber OK).
void quotient (float num, float * res) {
*res = num / a; } Nun habe ich das problem, das keine der externen dateien die variable "a" findet. Der Compiler meldet:
Code:
Woran liegt das? ich glaube nicht, das es an der main.c liegt, da die fertig schon da war und das labor in den jahren davor ja auch zu machen war.
user@bueckstueck02 ~/Desktop/Labor Info/blatt1/aufg1 $ gcc -o main main.c
In file included from main.c:3: average.c: In Funktion »average«: average.c:2: Fehler: »a« nicht deklariert (erste Benutzung in dieser Funktion) average.c:2: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt average.c:2: Fehler: für jede Funktion in der er auftritt.) In file included from main.c:4: quotient.c: In Funktion »quotient«: quotient.c:2: Fehler: »a« nicht deklariert (erste Benutzung in dieser Funktion) In file included from main.c:5: produkt.c: In Funktion »produkt«: produkt.c:2: Fehler: »a« nicht deklariert (erste Benutzung in dieser Funktion) In file included from main.c:6: summe.c: In Funktion »summe«: summe.c:2: Fehler: »a« nicht deklariert (erste Benutzung in dieser Funktion) In file included from main.c:7: differ.c: In Funktion »differ«: differ.c:2: Fehler: »a« nicht deklariert (erste Benutzung in dieser Funktion) user@bueckstueck02 ~/Desktop/Labor Info/blatt1/aufg1 $ Danke für eure hilfe! |
AW: [C] Probleme mit Aufgabe und Variablen
Hallo,
musst du nicht auch extern float a in den anderen Dateien machen ? Heiko |
AW: [C] Probleme mit Aufgabe und Variablen
hab ich auch grade gemerkt :D danke.
allerdings bleibt mir dann nur das hier:
Code:
Ich weiß langsam nimmer weiter :( ich weiß warum ich sonst nie mit globalen sachen arbeite.
user@bueckstueck02 ~/Desktop/Labor Info/blatt1/aufg1 $ gcc -o main main.c
/tmp/cc0775xc.o: In function `average': main.c:(.text+0x79): undefined reference to `a' /tmp/cc0775xc.o: In function `quotient': main.c:(.text+0xa9): undefined reference to `a' /tmp/cc0775xc.o: In function `produkt': main.c:(.text+0xd1): undefined reference to `a' /tmp/cc0775xc.o: In function `summe': main.c:(.text+0xf1): undefined reference to `a' /tmp/cc0775xc.o: In function `differ': main.c:(.text+0x109): undefined reference to `a' /tmp/cc0775xc.o:main.c:(.text+0x124): more undefined references to `a' follow collect2: ld gab 1 als Ende-Status zurück EDIT: Fehler gefunden. war ein kleiner fehler in der main.c. DANKE! |
AW: [C] Probleme mit Aufgabe und Variablen
Hallo,
du must dem gcc alle c files angeben gcc 1.c 2.c 3.c -o explorer.exe ;) siehe auch hier ![]() Heiko |
AW: [C] Probleme mit Aufgabe und Variablen
Wenn ich das sehe, dann bekomme ich das kalte Grausen :lol:
Code:
und zwar deshalb:
extern void einlesen (float *, float *);
extern void average (float, float *); extern void quotient (float, float *); extern void produkt (float, float *); extern float summe (float); extern float differ (float); 1.) keine Parameternamen - somit sieht man nicht was übergeben werden soll 2.) kein Header-File Man könnte z.B. in main.c etwas anderes deklarieren als dann in average.c geschrieben wird. Der Linker packt den Objektcode brav zu einer EXE zusammen. (nur wenn er kein Namemangling benützt) Lässt man das Programm laufen, stürzt es ohne hilfreiche Meldung einfach ab. Man bin ich froh, dass ich kein C programmieren muss, sondern Delphi hab. :P |
AW: [C] Probleme mit Aufgabe und Variablen
Zitat:
und ich code auch lieber in delphi ;) aber ich bin schon froh das wir kein java machen *gg* auch wenns anfangs wie C ist... |
AW: [C] Probleme mit Aufgabe und Variablen
Hallo,
so, nu Ruhe ;) Klappt es denn jetzt ? Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz