Variablen definieren?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Variablen definieren?

Beitrag von exit »

Vielleicht ist die Frage etwas blöd :oops: aber stelle sie trotzdem:

1. Macht es Sinn Variablen per DEFINE zu deklarieren? Ein Vorteil ist, dass sie als Variable im "Variablenfenster" erscheinen und man nicht immer überlegen muss wie man das eine oder andere bezeichnet oder geschrieben hat.

2. Wenn ich eine Variable nicht definiere ist sie dann immer ein FLOAT? Bisher habe ich Variablen nicht bezeichnet und komme auch mit positiven und negativen Werten incl. Kommastelle gut zurecht.

Bin auf eure Antworten gespannt.
- Windows 10
- PureBasic 5.62
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

1.
Syntax
EnableExplicit
DisableExplicit

Beschreibung

Aktiviert (EnableExplicit) oder deaktiviert (DisableExplicit) den Explizit-Modus. Wenn aktiviert, werden alle nicht ausdrücklich mittels Define, Global, Protected oder Static deklarierten Variablen nicht akzeptiert und der Compiler wird eine Fehlermeldung ausgeben. Dies kann helfen, Schreibfehler bei der Verwendung von Variablen auszumerzen.
Beispiel:

EnableExplicit

Define a

a = 20 ; Ok, da mittels 'Define' deklariert
b = 10 ; Hier wird ein Fehler ausgegeben
2.
Eine nicht definierte Variable ist immer Integer bzw. LONG
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
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Beitrag von exit »

Eine nicht definierte Variable ist immer Integer bzw. LONG
Aber wie kommt es dann, dass ich OHNE Deklaration mit Kommastellen arbeiten kann?

Da ich bisher keine Probleme habe, stellt sich die Frage, in wie weit es Probleme geben kann! Wie schon gesagt ich vermisse nur die Auflistung in der Variablenliste.

Sollte es gute Gründe für eine Definition geben, erweitere ich mein aktuelles Projekt um ein paar "DEFINE-Zeilen"
- Windows 10
- PureBasic 5.62
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Aber wie kommt es dann, dass ich OHNE Deklaration mit Kommastellen arbeiten kann?
kannst du nicht, außer du machst so eine "unechte Deklaration" also:

Valiable.f = 0.5
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
- chris -
Beiträge: 195
Registriert: 24.08.2005 19:52
Wohnort: Stadtallendorf

Beitrag von - chris - »

Code: Alles auswählen

Define a.f

a = 1.5
b = 2

c = a * b

Debug c
Wenn die Variable a nicht mit Define deklariert wird,
erhält man ein falsches Ergebnis.
Little John

Beitrag von Little John »

exit hat geschrieben:Da ich bisher keine Probleme habe, stellt sich die Frage, in wie weit es Probleme geben kann! Wie schon gesagt ich vermisse nur die Auflistung in der Variablenliste.

Sollte es gute Gründe für eine Definition geben, erweitere ich mein aktuelles Projekt um ein paar "DEFINE-Zeilen"
Ausschnitt aus Stargates obigem Zitat:
Dies kann helfen, Schreibfehler bei der Verwendung von Variablen auszumerzen.
Ohne Variablendeklaration kann z.B. leicht sowas passieren:

Code: Alles auswählen

StueckZahl = 20
StueckPreis = 3

[ein Haufen anderer Code]

Kosten = StueckZahl * StuckPreis
Debug Kosten
Und Du wunderst Dich, warum die Kosten anscheinend immer 0 sind. Bei einem großen Programm kann es lange dauern solche Fehler zu finden, mit EnableExplicit findest Du sie sofort.

Gruß, Little John
Benutzeravatar
exit
Beiträge: 36
Registriert: 24.03.2008 12:17
Computerausstattung: - Windows 10
- PureBasic 5.62

Beitrag von exit »

Danke Ihr habt mich überzeugt!

Die Frage war von daher schon etwas blöd :oops: weil ich in älteren Projekten schon Variablen definiert hatte. Diese allerdings immer mit xyz.f benannt und nicht einmalig mit DEFINE deklariert.

Ich habe mich wohl hier irgendwie verrannt.[/b]
- Windows 10
- PureBasic 5.62
Antworten