Wie Variable deklarieren?

Gast #443788
Lesenswert?
• ▲
▼
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
Gast #443794
Lesenswert?
• ▲
▼
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
Persönliche Seite #443803
Lesenswert?
• ▲
▼
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
}
#443815
Lesenswert?
• ▲
▼
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 :-)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.