Ganz ganz kurze Frage zu zwei Operatoren!



  • Was macht '?' und was macht '#' in defines?



  • Das Zeichen "#" ist ne Präprozessoranweisung; wird zb. beim "includen" von Headern verwendet.

    #include irgendeineDatei.h
    

    Das Fragezeichen kann ich dir nicht beantworten, in welchem Zusammenhang??



  • Du meinst sicherlich den ternären Operator?

    a? b:c
    

    Dies entspricht

    if(a)
      b;
    else
      c;
    

    Und ein # in einem define erzeugt eine konstante Zeichenkette, d.h. es setzt doppelte Anführungsstriche um den Namen,
    z.B.

    #define STR(X) #X
    

    Bei Aufruf von STR(Hallo) wird daraus dann "Hallo".



  • Th schrieb:

    Du meinst sicherlich den ternären Operator?

    a? b:c
    

    Dies entspricht

    if(a)
      b;
    else
      c;
    

    Und ein # in einem define erzeugt eine konstante Zeichenkette, d.h. es setzt doppelte Anführungsstriche um den Namen,
    z.B.

    #define STR(X) #X
    

    Bei Aufruf von STR(Hallo) wird daraus dann "Hallo".

    nicht ganz, das ? kann man in einer anweisung verwenden,

    return 17+(b ? 8 : 3);
    

    wenn du "#define fop 17" in deinem quelltext hast, dann wird jedes fop in denem quelltext vor dem kompilieren durch 17 ersetzt, kannst es ja mal ausprobieren, in dem du mit "g++ -E -o datei.ii datei.cpp" compilierst.


Anmelden zum Antworten