wenn Shared, dann innerhalb Shared und außerhalb Define, nicht Global.
wenn Global, dann nur außerhalb, innerhalb ist automatisch.
das erste ist alles Andere als erwartungsgemäß, das müßte auf jeden Fall angemeckert werden.
die Korrekte Fehlermeldung sieht so aus:
---------------------------
PureBasic
---------------------------
Line 3: Variable already declared with another type: b.
---------------------------
OK
---------------------------
auch dieses müßte einen Fehler produzieren:
Code: Alles auswählen
Procedure hallo()
Shared b.i
b = 3
Protected b.i
b = 2
EndProcedure
denn die selbe Variable kann nicht Shared
und Protected sein, schon garnicht nacheinander.
wenn das ginge, müßte sie
definiert werden, um eine Variable die unter Procedures ge-shared wird von einer Globalen zu trennen.
aber PureBasic Shared immer automatisch auch mit dem Hauptprogramm.
Code: Alles auswählen
Define b.i
Procedure hallo()
Shared b.i
Debug b
EndProcedure
b = 4711
hallo()
das ist nicht in jeder Sprache so, bei manchen wäre die einfach definierte im Hauptprogramm von den Shared in den Proceduren getrennt,
sie müßte auch im Hauptprogramm als Shared definiert werden, um die selbe zu sein.
also, da muss man mal ne vernünftige Bugmeldung draus machen.
... ich kann jetzt nicht, sonst verhunger ich.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.