Globale Struktur als Pseudo-Namespace?
-
Ich habe mir überlegt eine globale Struktur als eine Art Pseudo-Namespace zu benutzen, um globale Variablen besser zu handlen. Also sowas in etwa:
// global struct{ int foo; struct{ int bar; }Modul_A; struct{ float baz; }Modul_B }Global;
Was meint ihr? Ist das übertrieben? Bitte um Meinungen.
-
Also ansich find ich die Überlegung - also als reines Pseudo-Namespace - nicht mal schlecht. Allerdings glaub ich, dass es wohl auf das Einsatzgebiet draufankommt.
Kleinere Sachen/Projekte werden diesen Aufwand wohl nicht wert sein. Aber wie gesagt, der Grundgedank find ich gut
-
Danke für deinen Beitrag.
walk0n schrieb:
Also ansich find ich die Überlegung - also als reines Pseudo-Namespace - nicht mal schlecht. Allerdings glaub ich, dass es wohl auf das Einsatzgebiet draufankommt.
Das Einsatzgebiet sind Steuerungen auf µCs. Von daher denke ich eine sinnvolle Aufteilung in die verschiedenen Module (z.B. CAN-Kommunikation, I2C, ...) finden zu können.
walk0n schrieb:
Kleinere Sachen/Projekte werden diesen Aufwand wohl nicht wert sein. Aber wie gesagt, der Grundgedank find ich gut
Nun, ist die Frage was man unter "klein" versteht. Mir geht es halt nicht nur darum selbst den Überblick zu bewahren, sondern auch dass Dritte den Code gut lesen und erweitern können.
Ich werde es mal am Anfang durchziehen und schauen ob es den erhofften Effekt bringt
-
nett. erinnert mich an python und D.
-
TactX schrieb:
Das Einsatzgebiet sind Steuerungen auf µCs.
und weil die wenig RAM haben machste noch aus einigen structs 'unions'. so können sich module, die garantiert nie gleichzeitig laufen, den wertvollen speicher sharen...
-
net schrieb:
TactX schrieb:
Das Einsatzgebiet sind Steuerungen auf µCs.
und weil die wenig RAM haben machste noch aus einigen structs 'unions'. so können sich module, die garantiert nie gleichzeitig laufen, den wertvollen speicher sharen...
Wenn sich das ergeben sollte, sicher.
-
Ich finde es nicht übertrieben, wenn es mehrere globale Variablen sind. Für 2 würde ich jetzt nicht so eine Struktur erstellen, aber wenn es mehrere sind, benutze ich das auch, z.B. in einem Projekt von mir
extern struct appvars { struct { int listener_port; char listener_ip[16]; } socket; struct { fpos_t file_pos; char filename[256]; } snort_log; struct log *log; time_t now; int quit; } app;
Auf jeden Fall hast du damit die globalen Variablen gut zusammengefasst.
-
Da werden schon genügend Variablen zusammenkommen