Moin! Zur Zeit habe ich eine Problem, mit einer Variablendeklaration. ich denke ihr könnt mir schneller hlefen, als das ich mich jetzt meine C-Bücher hole. Ich habe 2 Programme: Main und Futter In dem einen "main" wird eine Variable "x" erzeug, diesen Inhalt möchte ich gerne an ein weiteres Hauptprogramm "futter" übergeben. Allerdings wird nie der korrekte Inhahlt der Varibale x angezeigt. Wie und wo muss ich die Varible richtig deklarieren ? Es gibt extern static etc.. Bitte um kurzfrstige Antworten, Danke im Vorraus!! Mfg Sascha
hast du wirklich 2 programme oder zwei source files die zu einem programm werden? wenn du eben 2 dateien hast dann musst es so machen: datei1: globale variable: int wert; datei2: global: extern int wert; so weit ich mich erinnern kann wars das. wenn du wirklich 2 programme hast dann wirds schon etwas schwieriger. da musst du dann über pipes oder shared memory oder ähnliches kommunizieren. lg andi
Im Prinzip hat Andreas zwar recht, aber sauberer ist folgende Vorgehensweise: // Datei1.h (Deklaration der globalen Variablen)
1 | extern int wert; |
// Datei1.c (Definition der globalen Variablen)
1 | #include "Datei1.h" |
2 | |
3 | int wert; |
// Datei2.c (Verwendung der globalen Variablen)
1 | #include "Datei1.h" |
2 | |
3 | int funktion(void) |
4 | {
|
5 | wert = 0; |
6 | |
7 | return (wert); |
8 | }
|
Wenn du allerdings die globale Variable nur hast um damit Werte von einer Funktion zur anderen zu übergeben, dann ist es das beste du lässt die globale Variable komplett weg und machst:
1 | void futter( int j ) |
2 | {
|
3 | // hier kannst du dann mit 'j' arbeiten wie
|
4 | // du lustig bist
|
5 | }
|
-------
1 | int main() |
2 | {
|
3 | int i; |
4 | |
5 | i = 5; |
6 | |
7 | futter( i ); // Der Inhalt von i wird an die Funktion |
8 | // futter übergeben. Innerhalb der Funktion
|
9 | // futter ist dieser Wert dann in der Variablen
|
10 | // j verfuegbar
|
11 | |
12 | futter( 8 ); // man braucht dann auch keine Variable auf |
13 | // der absendenden Seite
|
14 | }
|
> denke ihr könnt mir schneller hlefen, als das ich mich jetzt > meine C-Bücher hole. Die sollten sowieso ständig in Griffweite liegen :-)
Ja, danke für Eure Antworten.. Sie haben mich an mein Ziel gebracht !!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.