Unterschied "extern" vs. get-Funktion?

OP (Firma: keine) #599207
Lesenswert?
• ▲
▼
Hallo,

ich bin grad ein wenig am grübeln.

Und zwar ist es ja so, dass wenn ich in einer c-Datei eine Variable 
deklariere, und diese in einer anderen c-Datei (die zum gleichen 
Programm gehört) verarbeiten möchte, ich entweder eine Funktion in die 
erste Datei packen kann, die mir den Wert zurückgibt, oder aber in einer 
dazu gehörigen Header-Datei die gleiche Variable nochmal als "extern" 
deklariere.

Wo ist denn da nun der große Unterschied, bzw. was hat welchen Vor- und 
Nachteil?
Gast #601240
Lesenswert?
• ▲
▼
Falls es noch von Interesse ist:

Eine get-Funktion kann dann Sinn haben, wenn man eine Variable für
andere Module read-only machen möchte. Dazu schützt man die Variable
mit static vor direktem Zugriff und stellt eine get-Funktion für den
Lesezugriff bereit.
#602038
Lesenswert?
• ▲
▼
Wenn die Variable beim Auslesen mit locks (bzw cli/sei) geschützt werden 
sollte, hat die get-Methode auch den Vorteil dass man das nicht 
vergessen kann.

Bei ner extern-Variable vergisst man das spätestens beim nächsten 
Projekt, wo man das Modul wiederverwenden will... und hat dann nen 
schönen nicht reproduzierbar auftretenden Bug

/Ernst
Gast #602334
Lesenswert?
• ▲
▼
... und mit get() kann man den Zugriff auf die Variable später auch 
"ganz einfach" auf Netzwerkfähigkeit trimmen. Die get() Funktion greift 
nicht mehr auf auf eine lokale, statische Variable zu, sondert fordert 
den Wert von einem remote Rechner an.

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.