Forum: Mikrocontroller und Digitale Elektronik Variablensichtbarkeit


von Jens M. (Gast)


Lesenswert?

Ich habe fogendes Problem:

Ich soll ein Teilmodul für eine Gruppenarbeit schreiben. Und ich muss in 
diesem Modul Variablen deklarieren/definieren die in einem anderen Modul 
gelesen und auch verändert werden müssen.
Die Mainfunktion ist nicht Teil meines Moduls. Wie kann ich dieses 
Problem lösen?
Ich habe mir natürlich auch schon ein paar Gedanken gemacht:
1) GLOBALE VARIABLEN: aber die kann ich nur in der *.c-Datei definieren 
in der die main() steht und die schreibe ich ja nicht
2) mit Hilfe von Strukturen?

Ich habe mehrere C-Bücher gewälzt und leider keine richtige Antort 
gefunden.
Ich hoffe ihr könnt mir helfen.

Vielen Dank.
Jens

von Walter T. (nicolas)


Lesenswert?

Jens M. schrieb:
> ich muss in
> diesem Modul Variablen deklarieren/definieren die in einem anderen Modul
> gelesen und auch verändert werden müssen

Warum? Reicht es nicht aus, wenn Dein Modul die Variablen korrekt 
befüllt oder ist Dein Modul eine Speicherverwaltung?

Viele Grüße
Nicolas

von Jens M. (Gast)


Lesenswert?

Ne. Die Variablen müssen auf jeden Fall in einem anderen Modul geändert 
werden.

von Walter T. (nicolas)


Lesenswert?

Die Frage war: Warum muß Dein Modul die Variablen erzeugen?

von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?


von Timm R. (Firma: privatfrickler.de) (treinisch)


Lesenswert?

Hallo,

so ganz verstehe ich das Problem noch nicht.

Wenn Du das unbedingt über Variablen lösen musst,
kannst Du die doch ganz normal in Deiner Header Datei
deklarieren und im Code, in der .c-Datei dann definieren.

Deine Kollegen importieren den Header und fertig.

Vlg
 Timm

von Besserwisser (Gast)


Lesenswert?

> 1) GLOBALE VARIABLEN: aber die kann ich nur in der *.c-Datei
> definieren, in der die main() steht, und die schreibe ich ja nicht.

            ^                        ^  hier gehören Kommata rein

Nein. Variablen, die außerhalb von Funktionen deklariert werden, sind 
global, unabhängig davon, in welchem File sie stehen.

Damit sie in einem anderen File bekannt werden, musst Du sie dort als 
"extern" deklarieren (das kann man mit einem .h-File machen).

von Walter T. (nicolas)


Lesenswert?

Hallo Jens,
warum muß Dein Modul (Deine Funktion?) die Variablen selbst erzeugen? 
Oft werden die Variablen in der aufrufenden Funktion (z.B. main) erzeugt 
und von der aufgerufenen Funktion nur noch geändert (schau z.B. in 
Deinem C-Buch mal nach der Verwendung von "strncpy" oder "snprintf" oder 
so...).

Oder haben die Variablen unterschiedliche Größen und Dein "Modul" muß 
auch noch eine rudimentäre Speicherverwaltung mitbringen?

Viele Grüße
Nicolas

von Jens M. (Gast)


Lesenswert?

Die gehört einfach "logisch" "thematisch" in mein Modul.


Ich werde es mal versuchen in dem ich die Variable in meinem file 
einführe und die anderen als extern einbinden

von Jens M. (Gast)


Lesenswert?

Ich danke euch :-)

von Glücksschweinchen (Gast)


Lesenswert?

Hallo Jens, mach es doch mit getter- und setter-Funktionen.
Das ist, besonders in Gruppenarbeit, die sicherste Alternative, weil du 
einer Fehlbedienung durch die anderen Mitglieder vorbeugen kannst.
1
/****meincode.h****/
2
extern int setTime(int);
3
extern int getTime(void);
4
5
/****meincode.c****/
6
#include "meincode.h"
7
8
int time;
9
10
int setTime(int pTime) {
11
  if (time > 0) {
12
    time = pTime
13
    return 0;
14
  } else return 1;
15
}
16
17
int getTime(void) {
18
  return time;
19
}
20
21
...

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
Noch kein Account? Hier anmelden.