TIA Fragen zu Konstanten

Zuviel Werbung?
-> Hier kostenlos registrieren
Sind sie nicht. Das sind Variablen mit festen Startwerten die man im Programm auch überschreiben kann.
Doch doch René, die festen Startwerte sind sehr wohl Konstanten, sonst wären sie doch nicht feste Startwerte!
Wir reden doch hier davon, dass wir zur Laufzeit eine Variable mit einem festen Startwert befruchten und dieser feste Startwert kommt woher???
Der feste Startwert wird nicht von einem ZufallszahlenGenerator ausgewürfelt, nicht von der aktuellen Uhrzeit abgeleitet und auch nicht vom Bediener ins HMI getastet, sondern vor dem Kompilieren vom gestressten Programmierer ins QuellProgramm getippt.
Es könnte natürlich sein, dass der Programmierer dazu eine literale Konstante eintippt. Aber da dieser Thread anscheinend von benannten Konstanten handelt, hatte ich unterstellt, er würde eine benannte Konstante eintippen.
Diese benannte Konstante muss natürlich irgendwo und irgendwie deklariert worden sein, z.B. als globale Konstante.
Beim Eintippen der Deklaration hat der Programmierer für die Konstante einen Namen vergeben und einen Wert zugewiesen, mit an Sicherheit grenzender Höchstwahrscheinlichkeit in Form einer literalen Konstante.
Die benannte Konstante wird zu keiner Zeit in eine Variable umgezaubert, egal, wie oft sie im Programm gelesen wird.
Lediglich ihr Wert wird gelesen und dazu benutzt, eine Variable mit einem vor dem Kompilieren festgelegten Wert (laut Deklaration) zu befüllen bzw. zu initialisieren.
Aber, wem sage ich das ... das wisst ihr doch alle schon!
Gruss, Heinileini

PS:
Murphy hat selbstverständlich Recht, wenn er sagt: "Alle Konstanten sind variabel."
Das gilt sogar, wenn das Programm bereits kompiliert worden ist. Man ändert einfach den QuellCode und kompiliert noch einmal! ;o)
 
mal dumm dazwischengefragt:
Wo liegt denn der Vorteil wenn ich das Array mit so einer Konstante definiere? Den Wert kann ich doch beim deklarieren genauso gut eintragen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
mal dumm dazwischengefragt:
Wo liegt denn der Vorteil wenn ich das Array mit so einer Konstante definiere? Den Wert kann ich doch beim deklarieren genauso gut eintragen
Schau Dir bitte mal diesen FB zum Thema "2 aus 5" an.
Dort wurde am Anfang mit einer Konstante definiert, dass die Ausgänge aus insgesamt 5 Stück ausgewählt werden sollen.
Von diesem Wert 5 hängen die Größen von 4 Arrays und die Definition einiger FOR-Schleifen im Programm ab (halt überall, wo Du das N wieder findest).

Natürlich kann man dort auch überall die Zahl 5 direkt eingeben.
Wenn dem Anwender morgen aber einfällt, doch lieber aus 9 Ausgängen auszuwählen, muss man das ganze Programm abgrasen, um die Anzahl zu ändern.
Dabei läuft man natürlich schnell Gefahr, etwas zu übersehen.

Mit einer Konstante muss nur eine einzige Stelle geändert werden, neu übersetzen und fertig ist der Lack.


Konstanten benutzt man daher vor allem dort, wo sich auf dieser festen Größe Folgebedingungen (wie z.B. Arraygrößen, Schleifendurchläufe ...) aufbauen.
Und insbesondere für die Arraygrößen gehen auch nur Konstanten, weil diese Werte beim Übersetzen feststehen müssen und auch nicht änderbar sein dürfen.
 
Zuletzt bearbeitet:
Zurück
Oben