#define funktion



  • Ahoj 😃

    Also bei meiner ersten Frage geht es eigentlich um PI,denn wenn ich anstatt PI pI,Pi oder pi schreibe,funktioniert es nicht mehr richtig.. so schaut es richtig aus:

    #define PI = 3.14
    

    Ich habe mal da zwei kleine fragen ;):

    1.)#define : Warum muss man das "PI" -> PI schreiben?
    2.) Was kann man noch definieren?
    Also so zbsp.

    #define crystal 215231
    #define test "Hallo"
    

    wie funktioniert des?/Kann man sie nur in Header am meisten definieren oder kann man auch nur in Sources schreiben(es geht ja beides,nur frag ich so halt)?/welche sachen kann man da noch definieren?/was gibts da noch für solche typen?/wo gibts tutorials?

    primer



  • Hallo

    funktioniert es nicht mehr richtig

    Funktioniert nicht ist keine Ausreichende Fehlerbeschreibung.

    define ist erstens keine Funktion, sondern eine Präprozessor-Anweisung.
    Damit wird einfach eine Textersetzung definiert.
    Zweitens ist define in C++ nicht zum Definieren von Konstanzen Werten da, denn define ist nicht typsicher. Nimm also gleich die echte C++ Variante

    const float PI = 3.14;
    

    bis bald
    akari



  • Primer schrieb:

    [...]
    wo gibts tutorials?

    ➡ http://www.cpp-tutor.de/cpp/le08/le08_04.htm



  • Primer schrieb:

    Ahoj 😃

    Also bei meiner ersten Frage geht es eigentlich um PI,denn wenn ich anstatt PI pI,Pi oder pi schreibe,funktioniert es nicht mehr richtig.. so schaut es richtig aus:

    #define PI = 3.14
    

    Naja, das ist gültiger Code, er macht aber nicht, was du willst nehme ich an.

    #define PI = 3.14
    double blub = PI;
    

    wird ersetzt zu

    double blub = = PI
    

    Richtig müsste deine Definition also lauten

    #define PI 3.14
    

    Noch besser wäre es allerdings, wenn du auf akari hörst und das Ganze als Konstante definierst. Ansonsten könntest du Probleme bekommen, wenn du so etwas machst.

    #define PI 3.14
    void meineTolleFunktion()
    {
      double PI = 10;
    }
    

    dies würde ersetzt zu

    #define PI 3.14
    void meineTolleFunktion()
    {
      double 3.14 = 10;
    }
    

    was natürlich Blödsinn ist. Mit einem const wäre dir der Fehler erspart geblieben.


Anmelden zum Antworten