Hallo zusammen, hab mal ne allgemeine Fragen: Ein paar Kollegen vo mir deklarieren Ihre Variablen in ihren C-Programmen (Keil und PIC) immer global in einer Datei (z.B. Variablen.h) - ich dagegen mache die Variablen die ich in meinen Progs benütze lieber immer nur in der entsprechende klasse bekannt (so wie ich es eigentlich auch gelernt habe). Nun kam der Einwand dass das unübersichtlicher ist als alles zusammen zu deklarieren, und wenn man alle Variablen sowieso in der gleichen Datei deklariert, ist das eh egal ob global oder nicht . daher meine Frage - wie macht Ihr das in Euren C-Programmen - deklariert Ihr auch alles global oder noch schön klassisch indem Ihr die Variablen nur in den Klassen bekannt gebt, in dennen Ihr sie auch braucht? So langsam habe ich das gefühl dass ich der einzigste bin, der das noch macht, deswegen dachte ich, ich muss mal nachfragen wie das die Allgemeinheit hält! Danke und GRuß
1.: In C gibt es keine Klassen... 2.: Ich persönlich verwende globale Variablen bei der Embedded-Programmierung eigentlich nur dann, wenn es mit lokalen Variablen kein Weiterkommen gibt, also z.B. zum Datenaustausch mit Interrupt-Handlern, die ja nunmal keine Werte zurückgeben können. Globale Variablen blockieren statisch Speicherplatz, der gerade bei Embedded-Systemen wertvoll ist und demzufolge nicht unnötig verplempert werden sollte. Variablen deklariere ich grundsätzlich mit dem kleinstmöglichen Gültigkeitsbereich.
@mark >hab mal ne allgemeine Fragen: Ein paar Kollegen vo mir deklarieren Ihre >Variablen in ihren C-Programmen (Keil und PIC) immer global in einer >Datei (z.B. Variablen.h) - ich dagegen mache die Variablen die ich in Sind sicher ältere Kollegen . . .;-) >meinen Progs benütze lieber immer nur in der entsprechende klasse >bekannt (so wie ich es eigentlich auch gelernt habe). >Nun kam der Einwand dass das unübersichtlicher ist als alles zusammen zu >deklarieren, und wenn man alle Variablen sowieso in der gleichen Datei Quark. Genau anders herum wird ein Schuh draus! Möglichst wenige globale Variablen benutzen! Denn die meisten Variablen werden nur lokal von den Funktionen benutzt (Schleifenzähler, Zwischenpsiecher etc.). Wenn amnnur globale Variablen nutzt, ist ratz-Fatz der Überblick hin und der globale Namensraum verdreckt. >So langsam habe ich das gefühl dass ich der einzigste bin, der das noch >macht, deswegen dachte ich, ich muss mal nachfragen wie das die FALSCH! Du bist der einzige, der es nach neuer, besserer Art richtig macht. Stichwort Kapselung, Modularisierung! MFG Falk
Wenn das ganze Programm sowieso auf eine Seite (und damit in eine Datei)passt, dann packe ich die Variablen auch gleich mit rein. Aber ansonsten schön nach Modulen, mit (hoffentlich) sauberen Schnittstellen, in der entsprechende Header-Datei. Und nur, wenn es gar nicht ohne globale Variablen geht, die main zugeordnet sind, nehme ich ausnahmsweise sowas wie globals.h. Normalerweise braucht man sowas nur, wenn die Module nicht sauber getrennt sind. Ist aber nur meine persönliche Meinung. Das (semi-)professionelle Programmieren im Uni-Umfeld habe ich schon lange hinter mir, aber selbst bei meinen kleinen Hobby-Spielereien rächt sich jede unsaubere Schnittstelle zwischen den Modulen früher oder später. Oliver (P.S. Das gilt natürlich alles nur für C. In C++ sollte sich die Frage gar nicht stellen, und in Basic programmiert man einfach nicht...)
> ...und in Basic programmiert man einfach nicht...
Der war gut!
johnny.m wrote: > > Variablen deklariere ich grundsätzlich mit dem > kleinstmöglichen Gültigkeitsbereich. Jau, so und nicht anders. Global oder statisch lokal nur dort, wo es unbedingt sein muß. Peter
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.