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
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
Ne. Die Variablen müssen auf jeden Fall in einem anderen Modul geändert werden.
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
> 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).
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.