and/or/not



  • Hi,

    ich habe gerade durch einen Vertipper (vorher zuviel mit einer Scriptsprache gemacht) festgestellt, das sich statt && || und ! auch 'and' 'or' und 'not' schreiben kann.

    Also z.B.

    if (not x == 0 and (y == 1 or z == 1)) ...

    Wenn ich mir dann ansehe, was der Compiler da sieht (nennt sich hier 'Token-Stream'), sehe ich dass er wieder ! && und || daraus macht.

    Jetzt frage ich mich, ob das Standardkonform ist, oder ob sich mein Compiler da eine Freiheit herausnimmt. Ich finde es so nämlich gleich viel weniger Kryptisch als die Schachsinns-C-Operatoren dafür, und wenn's Standardkonform ist, benutze ich in Zukunft nur noch diese Schreibweise.

    Ich habe jedenfalls keine Option gefunden, um dieses Verhalten an- oder abzuschalten, was normalerweise bei allen Hersteller-Spezifischen Erweiterungen des Compilers der Fall ist, darum bin ich guter Hoffnung, dass es Standardkonform ist.

    Ist aber nur Vermutung. Weiss es jemand genau?



  • Meinst Du #defines ?

    Wenn ja:

    Diese werden vom Preprozessor (oh gleich erschlägt mich jemand für die schreibweise 😃 ) ersetzt. Der Compiler bekommt NACH dem ersetzen erst den Quelltext zu sehen.

    d.h.: Der Preprozessor hält sich an eine Regel: Suche das was zu suchen ist und ersetze es durch exakt das was angegeben wurde.

    Erst danach kommt C++ mit den Regeln ins spiel.

    Du kannst also auch schlüsselwörter umdefinieren. Wenn Du den VC Compiler nutzt:
    Der macht das z.B. um eine eigenen new Operator zur verfügung zu stellen mit eigenen Informationen wo wann und wie Speicher allociert wurde.



  • and, or, etc. sind C++ Schlüsselwörter, genau wie while, for, int etc.
    nix präprozessor, auch wenn das oft so implementiert ist (für VC6 muss man afaik iso646.h einbinden)
    aber alles Standard!
    siehe auch: http://www.glenmccl.com/032.htm
    zum thema digraphen und trigraphen



  • Coooool, danke. Lebt wohl kryptische C-Style-Operatoren 🙂

    BTW: Ich brauche bei meinem Compiler kein Include dafür, funktioniert selbst wenn ich gar nix include, scheint also fest im Compiler verdrahtet zu sein.



  • ja, standard, chapter 2.5 "alternative tokens"

    while for int and or not
    

    [ Dieser Beitrag wurde am 01.05.2003 um 10:27 Uhr von PeterTheMaster editiert. ]



  • Achso, das soll ein Syntax-Highlighting-Test sein.

    la la la


Anmelden zum Antworten