Referenz - Minus
Syntax A: Wert = Ausdruck1 - Ausdruck2
Syntax B: Ausdruck1 -= Ausdruck2
Syntax C: Wert = -Ausdruck2
Typ: Operator
Kategorie: Operatoren
Das Minus-Zeichen kann in FreeBASIC zur Subtraktion (Syntax A und B) und zur Negation (Syntax C) eingesetzt werden. Bei Syntax B handelt es sich um eine kombinierte Subtraktion; dies ist die Kurzform für
Ausdruck1 = Ausdruck1 - Ausdruck2
Sowohl die Subtraktion als auch die Negation kann mithilfe von OPERATOR überladen werden.
Subtraktion zweier Zahlen
Wert = Ausdruck1 - Ausdruck2
Ausdruck1 -= Ausdruck2
In dieser Form eingesetzt bewirkt das Minus die Subtraktion zweier Argumente; der Rückgabewert ist die Differenz der beiden Argumente. Die Argumente dürfen Zahlen, numerische Konstanten, numerische Variablen, und numerische Rückgabewerte von Funktionen sein. Die Subtraktion ist die Gegenfunktion zur Addition.
Beispiel:
DIM AS BYTE n
n = 120 - 119
n -= 10
PRINT n
SLEEP
Ausgabe:
-9
Subtraktion an Pointern
neuerPointer = alterPointer - Wert
Pointer -= Wert
Subtraktion an Pointern ermöglicht, die Adresse zu ändern, auf die ein Pointer zeigt. Der subtrahierte Wert wird jedoch zuvor mit SIZEOF(Pointertyp) multipliziert. Dies vereinfacht dem Programmierer, sicherzustellen, dass seine Pointer auf sinnvolle Adressen zeigen.
Beispiel:
DIM a(10) AS INTEGER
DIM pa AS INTEGER PTR
DIM i AS INTEGER
FOR i = 0 TO 10
' Das Array mit Werten von 0 bis 10 befüllen
a(i) = i
NEXT
' Einen Pointer auf das Ende des Arrays setzen
pa = @a(10)
FOR i = 0 TO 10
' Den Wert ausgeben, auf den der Pointer gerade zeigt:
PRINT *pa;
' den Pointer um eine INTEGER-Stelle verschieben:
pa -= 1
NEXT
Ausgabe:
10 9 8 7 6 5 4 3 2 1 0
Erläuterung: Mit jeder Zeile
pa -= 1
wird vom Wert von 'pa' tatsächlich 4 subtrahiert, denn 4=1*SIZEOF(INTEGER). Würden wir hier einen SHORT-Pointer (und dazu sinnvollerweise ein SHORT-Array) verwenden, würde sich der Wert um 2 verschieben.
Negation
Wert = -Ausdruck
Dieser Operator gibt den negativen Wert des Arguments zurück, ändert also das Vorzeichen. 'Ausdruck' kann eine Zahl, eine numerische Konstante, eine numerische Variable oder ein numerischer Rückgabewert einer Funktionen sein.
Beispiel:
DIM n AS LONGINT
PRINT -5
n = 65432568459
n = -n
PRINT n
SLEEP
Ausgabe:
-5
-65432568459
Unterschiede zu QB:
- Kombinierte Operatoren sind neu in FreeBASIC.
- Subtraktion an Pointern ist neu in FreeBASIC.
Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.14 wird bei der Subtraktion an Pointern automatisch die Multiplikation mit der Größe des Pointertyps durchgeführt. Davor musste der Programmierer selbst sicherstellen, dass Pointer weit genug verschoben wurden.
Siehe auch:
Pointer, mathematische Funktionen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|