PDA

View Full Version : Lokale Variable im Serviceprogramm?



Seiten : 1 [2]

B.Hauser
24-08-21, 12:22
... wenn das zum Problem wird, ist das Modul zu groß!

Das kann schon in dem Moment zum Problem werden, wenn in dem Modul mehr als eine Prozedur vorhanden ist.
... man sollte manchmal nicht glauben auf welche Ideen Programmierer kommen können!

Lucky662
24-08-21, 12:55
Also wenn ich die Prozedur aufrufe, möchte ich das Ergebnis des letzten Aufrufs haben.
Ist die Variable global definiert, so kann jede Prozedur die Variable ändern und vor allen Dingen aus allen aufrufenden Programmen heraus. Wenn die Variable also im andernen Programm anders benutzt wird, sind die Folgen eventuell Fatal.
Deshalb wähle ich lokale Variablen in der einzelnen Prozedur.

Lucky662
24-08-21, 13:01
Also ein Serviceprogramm mit mehreren Modulen, auf die Idee würde ich nicht kommen. Wenn die Prozeduren thematisch zusammen gehören, dann sollten die Prozeduren auch in einem Modul stecken und somit ein Serviceprogramm mit einem Modul.

BenderD
24-08-21, 13:23
Also wenn ich die Prozedur aufrufe, möchte ich das Ergebnis des letzten Aufrufs haben.
Ist die Variable global definiert, so kann jede Prozedur die Variable ändern und vor allen Dingen aus allen aufrufenden Programmen heraus. Wenn die Variable also im andernen Programm anders benutzt wird, sind die Folgen eventuell Fatal.
Deshalb wähle ich lokale Variablen in der einzelnen Prozedur.

... wenn Variablen nicht exportiert werden (was man auch besser bleiben lässt) sind sie nur innerhalb des Moduls sichtbar. Module sollten nur so groß sein, dass man den Überblick leicht behält. Macht man die statefull Variablen global, kann man den prozeduralen Anteil leichter modularisieren. Über die Parameter Schnittstellen kann man steuern, dass interne Zustände nicht von außen überschrieben werden können. Wichtig ist, dass man keine Parameter per reference weiterreicht, dann können sie nämlich verändert zurückkommen, selbst wenn sie lokal static definiert sind.

D*B