Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zählvariable lokal oder global?


Bomania - Sa 10.05.03 13:44
Titel: Zählvariable lokal oder global?
Hallo,

mir ist da letztens aufgefallen, dass ich Zählvariablen für Schleifen etc. immer lokal deklariert habe. Das ist zwar ganz im Sinne der Datenkapselung, aber was macht denn mehr Sinn, wenn man z.B. 5 zählergesteuerte Schleifen in unterschiedlichen Prozeduren hat? Ist es da nicht effektiver, nur eine Variable für diesen Job global zu deklarieren als in jeder Prozedur?

Gruß,
Bo


bis11 - Sa 10.05.03 13:57

Das kommt auf Deine Prozeduren an. Sind die einzelnen Proceduren unabhängig, dann kann man das machen mit der einen globalen Variable. Rufen die Proceduren sich gegenseitig durch die Schleifen immer wieder auf, so musst Du in jeder Procedure eine Variable für Deine Schleifen deklarieren.


Bomania - Sa 10.05.03 14:28

Ja stimmt, das leuchtet ein. Danke für die Antwort.


Delete - Sa 10.05.03 16:51

Läßt Delphi überhaupt globale Variablen als Zählvariablen für Schleifen zu? Aber auch wenn es dies tut, würde ich es vermeiden auch wenn ich eine in mehreren Prozeduren brauche. Es erhöht einfach die Übersichtlichkeit, entspricht dem Prinzip des OOP, es kann nichts passieren, global verbraucht sie zur gesamten Laufzeit Speicher. Ich sehe keinen Grund sie global zu machen, nur Gründe, die dagegen sprechen.


AndyB - Sa 10.05.03 18:22

Lokale/Globale Variaben und OOP :?

Aber egal. Noch ein Nachteil der globalen Variablen. Diese werden nicht immer in ein CPU Register geladen. Bei lokalen Variablen hingegen versucht der Compiler diese so oft und so lang wie nur möglich in den Rechenregistern zu halten, damit die Geschwindigkeit des Codes steigt.


Bomania - So 11.05.03 07:54

Danke für die Antworten. Die Quintessenz also: nur lokale Variablen.