Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Postfixinkrement/Präfixinkrement

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
4paws



Anmeldungsdatum: 19.02.2025
Beiträge: 2

BeitragVerfasst am: 19.02.2025, 10:31    Titel: Postfixinkrement/Präfixinkrement Antworten mit Zitat

Hallo miteinander,

in C++ gibt es die Möglichkeit einen Operator Präfixinkrement anzulegen.

Code:


operatror ++()




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.

Code:

i= i +1
j += i

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1838
Wohnort: [JN58JR]

BeitragVerfasst am: 19.02.2025, 12:12    Titel: Antworten mit Zitat

Das hier sollte sein, wonach Du suchst:

https://www.freebasic-portal.de/befehlsreferenz/operator-544.html


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4687
Wohnort: ~/

BeitragVerfasst am: 19.02.2025, 14:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
4paws



Anmeldungsdatum: 19.02.2025
Beiträge: 2

BeitragVerfasst am: 19.02.2025, 16:12    Titel: Antworten mit Zitat

schade eine Function ist ehr nicht die Lösung.

aber vielleicht wird es ja mal eine Implementierung im Compiler geben. happy


@ThePuppetMaster
mir geht es spezial um die beiden Möglichkeiten.


MfG

4Paws
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Berkeley



Anmeldungsdatum: 13.05.2024
Beiträge: 85

BeitragVerfasst am: 25.02.2025, 21:40    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz