Variablensichtbarkeit

Gast #2864635
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
(Firma: privatfrickler.de) #2864650
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
Gast #2864657
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).
#2864659
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
Gast #2864677
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
...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren