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?
Mit funktion hat es den Vorteil das es "getrennter" ist. Und mit dem extern ist es platzsparender. Ich und vieele andere machen es einfach mit extern. Also "globale" Variable.
Also gibt es keinen echten Vor- oder Nachteil in dem Sinne, sondern es hängt vom Programmierer, seinen Vorlieben und der Anwendung ab?
kommt immer drauf an... aber defaultmässig würde ich extern nehmen und mir den Platz für die Funktion sparen. Hab ich auch noch fast nie anders gesehen
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.
cool - das ist mal wieder ein super Hinweis, für den ich hier fast jeden Tag mal rein schaue :-)
Hi oder aber wenn die interne Darstellung einer Variablen eine andere ist als die externe. Die Set und Get Funktionen erledigen dann die Umrechnung. Matthias
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
... 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.
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.