Wie auf statische Variable in Datei zugreifen?

Gast #6021196
Lesenswert?

Hallo,

ich habe mal eine Frage wie mann/ihr etwas macht.
Ich habe file1.h, file1.c, file2.h, file2.c

in file1.c gibt es eine statische variable, welche aber auch in file2.c 
benötigt wird. Dazu habe ich in file1.c eine getter-Funktion gemacht, 
welche aus file2.c aufgerufen wird.
In file1.h sind nur Funktionen Deklariert. Variablen dürfen dort nicht 
rein.

Wie würdet/macht ihr in file1.c auf die Variable zugreifen? Auch durch 
die getter-Funktion? Oder die Variable direkt?
1
if(getModus() > ON){...}
2

3
int getModous(void)
4
{
5
  return gModus;
6
}
oder
1
if(gModus > ON){...}

gModus ist die variable in file1.c.
Gast #6021213
Lesenswert?

Ich würde das direkt machen. Manchmal kann man sowas aber als parameter 
eventuell auch in einem struct verpackt übergeben, die variante 
bevorzuge ich meistens. Wenn amn aber nicht von anfang an damit anfängt, 
ist sowas später schwer umzubauen.
Gast #6021264
Lesenswert?

Die Getter-Funktion ist schon der richtige Weg. Ist aber ein 
Funktionsaufruf und erzeugt Overhead.
Oftmals gibt es aber auch die Möglichkeit Funktionen als "inline" zu 
deklarieren, dann kommt das in dem Fall im Maschinenprogramm einem 
direkten Variablenzugriff gleich.

Alternativ kannst du natürlich in file1.h ein "extern gModus   " 
deklarieren, dann kannst du direkt auf die Variable zugreifen.
Gast #6021384
Lesenswert?

Getter ist netter. Wenn es einen Grund gibt, außerhalb getter zu nehmen, 
dann innerhalb auch. Nur nicht übertreiben: wenn im scope auch die 
Variable benutzt wird, dann nicht mixen, so z.b. if get()>10 g=0;

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