Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
4paws
Anmeldungsdatum: 19.02.2025 Beiträge: 2
|
Verfasst am: 19.02.2025, 10:31 Titel: Postfixinkrement/Präfixinkrement |
|
|
Hallo miteinander,
in C++ gibt es die Möglichkeit einen Operator Präfixinkrement anzulegen.
Gibt es oder hat jemand eine Idee wie man das umsetzen kann.
Wobei es eben um einen Operator handelt.
Die Funktion an sich ist nicht besonders spannend.
|
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1838 Wohnort: [JN58JR]
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4687 Wohnort: ~/
|
Verfasst am: 19.02.2025, 14:16 Titel: |
|
|
OPERATOR hilft da nicht viel - damit kann man nur bestehende Operatoren für eigene Datentypen überladen.
In FreeBASIC gibt es keine Inkrementierung mittels ++i oder i++, lediglich die Zuweisung i += 1 (und analoge Zuweisungen) ist möglich.
Ich habe es versuchsweise mit #MACRO und #DEFINE versucht, aber auch diese akzeptieren kein Schlüsselwort ++. Möglich wäre da meines Erachtens nur ein eigener Präprozesor, der die Inkrementierung in für FreeBASIC verständlichen Code übersetzt, bevor das in den Compiler geworfen wird. Oder natürlich die unelegante Variante einer eigenen Funktion:
Code: | function plusplus(byref a as integer) as integer
a += 1
return a
end function
dim as integer testvar = 7
print plusplus(testvar)
print testvar |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
4paws
Anmeldungsdatum: 19.02.2025 Beiträge: 2
|
Verfasst am: 19.02.2025, 16:12 Titel: |
|
|
schade eine Function ist ehr nicht die Lösung.
aber vielleicht wird es ja mal eine Implementierung im Compiler geben.
@ThePuppetMaster
mir geht es spezial um die beiden Möglichkeiten.
MfG
4Paws |
|
Nach oben |
|
 |
Berkeley
Anmeldungsdatum: 13.05.2024 Beiträge: 85
|
Verfasst am: 25.02.2025, 21:40 Titel: |
|
|
Im Grunde ist es ja auch nutzlos, weil das nur bei Pointerarithmetik, und im Speziellen Assembler bzw. Maschinencode Sinn macht. Also quasi (--Ziel)=(--Quelle)... Du kannst beim BASIC sowieso nicht eine Variable mitten in einem Ausdruck wie in C verändern, außer, du rufst eine Funktion auf die die Variable ändert und zurückgibt. Von daher hätte Präinkrement/dekrement keinen Sinn. --i und i-- machen allein stehend keinen Unterschied.
Wenn man möglichst schnell (größere Mengen) Daten schaufeln will, sollte man eine Spezialfunktion benutzen.
Ein "i++" bzw. "INC i" macht noch Sinn, aber nicht "++i" - also, die Unterscheidung von "i++". |
|
Nach oben |
|
 |
|