Zitat von
SirThornberry:
Die sauberste Variante ist eher soweit wie möglich auf globale Variablen zu verzichten. Dieses Beispiel zeigt sehr schön warum Globale so ungern gesehen sind bei den meisten Programmierern.
Sinn von solchen Doppeldefinitionen war eventuell das man nicht immer die eine
Unit einbinden muss nur weil man die Constante daraus braucht. Also definiert man sie sich neu.
Pfofessional ist das natürlich nicht, eine ordentliche Planung sorgt eigentlich dafür das Constanten nur an einer Stelle definiert werden und nicht mehrfach.
Hello Sir,
das Gegenteil ist der Fall: das Problem ist nicht, dass jemand globale Variable verwendet, sondern dass Delphi keine kennt. Das geht ja auch aus deinem 2. Satz hervor - bei echten globalen Variablen dürfte es eben keine unangemeckerten Doppeldefinitionen geben. Wenn ich eine Umrechnungskonstante mm2inch definiere, dann will ich selbstverständlich, dass jedes kleinste Stück meiner Software genau diese Konstante benutzt - was soll daran so böse sein, dass man es verbieten muss? Ist sowieso lächerlich, weil es Software ohne globale Variablen garnicht gibt - schreib mal ein Delphi-Programm ohne Application. Auch wenn man alles dynamisch in den Speicher lädt, was sowieso eher unsicher ist, irgendwo muss ja alles anfangen.
Das Problem ist also, dass es Doppeldefinitionen gibt, die es für Globales garnicht geben dürfte, und das ist ein reines Delphi-Problem. Selbst jeder Assembler meldet sowas als Fehler.
Gruss Reinhard