Thema: Anfangswert
Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 31.07.19
Ca$hDigger Ca$hDigger ist offline
Premium Mitglied
 
Registriert seit: Jun 2013
Beiträge: 364
Ca$hDigger befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Hallo.
Oder sollte das besser schon vor Init() oder Start() oder so passieren? Aber das wär ja eigentlich Verschwendung von Rechenleistung, Rechenzeit und Speicher, sie erst zu deklarieren und später im Programm noch mal die Variable aufzurufen, bloß um ihr nen Anfangswert zu geben... Müsste doch eigentlich reichen, das Alles zu machen, wenn sie zum ersten Mal benutzt wird.
Nein eher im Gegenteil, zum einen die Variable verbraucht im RAM immer den selben Speicher egal ob sie initialisiert wurde oder nicht. Wenn die Variable global also im scope des ganzen Programms sichbar ist, dann ist es sowieso keine Verschwendung von Rechenleistung oder Rechenzeit eben weil es nur einmal passiert beim Laden des Programms.
Lokal gesehen macht manchmal Sinn zB bei Schleifen die Deklaration und Initialisierung außerhalb der Schleife (also ein scope höher) zu machen, damit in der Schleife nur noch zugegriffen werden muss, eine wiederholte Deklaration und Initialisierung fällt dann dort weg, also ein Performancegewinn. Aber "Premature optimization is the root of all evil" viel wichtiger ist ein Programm "sicher" zu schreiben und das macht man zB durch initialisieren der Variablen.

Nicht initialisierte Variablen machen das Programm nicht deterministisch. Das heißt es existiert ein reservierter Speicherplatz wo nie klar ist was er enthält. Dies kann jedes mal wenn das Programm geladen wird unterschiedlich sein. Das Problem ist, ein Programm kann 5 Jahre fehlerfrei oder gar 5 Millionen mal fehlerfrei funktionieren und erst dann kommt dadurch ein Fehler. Dieser Fehler ist dann nicht reproduzierbar (Alptraum) eben weil die Ursache nicht deterministisch ist.

C$D