Keine Warnung bei mehrfacher Zuweisung mit Global?

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Keine Warnung bei mehrfacher Zuweisung mit Global?

Beitrag von Sven »

Code: Alles auswählen

Global.q a
Global.l a

Global.l b
Global.q b

a = Pow(2, 31) + 1
b = Pow(2, 31) + 1

Debug a  ;ergibt 2147483649
Debug b  ;ergibt -2147483648
Mir ist aufgefallen, daß bei mehrfacher Zuweisung verschiedener Typen zu einer Variable mittels Global keine Warnung erfolgt.

Normalerweise meckert der Compiler ja, wenn eine Variable bereits anders definiert ist. Ich habe es gemerkt, weil meine ElapsedMilliseconds übergelaufen sind, da ich die Variable einmal als Long und einmal als Quad zugewiesen hatte.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Keine Warnung bei mehrfacher Zuweisung mit Global?

Beitrag von STARGÅTE »

Das ist durchaus sehr komisch.
Selbst mit EnableExplizit kommt keine Meldung.

Ist scheinbar auch nur bei Global so.
Das er bei mehrfacher Declaration nicht meckert ist ja ok, aber bei verschiedenen Typen sollte er es schon machen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
helpy
Beiträge: 635
Registriert: 29.08.2004 13:29

Re: Keine Warnung bei mehrfacher Zuweisung mit Global?

Beitrag von helpy »

Mit einer anderen Schreibweise erscheint eine entsprechende Fehlermeldung:

Code: Alles auswählen

Global a.q
Global a.l

Global b.l
Global b.q

a = Pow(2, 31) + 1
b = Pow(2, 31) + 1

Debug a  ;ergibt 2147483649
Debug b	 ;ergibt -2147483648
Windows 10
PB Last Final / (Sometimes testing Beta versions)
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Re: Keine Warnung bei mehrfacher Zuweisung mit Global?

Beitrag von Sven »

Bei Define wird grundsätzlich gemeckert.

Und bei Global wird gemeckert, wenn man es so schreibt:

Code: Alles auswählen

Global a.q
Global a.l
Antworten