Frage zu "#define"

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,


    wenn ich mich nicht täusche dann steht `LL` für den Datentyp, in dem Fall long long.

    Zu der Klammer:
    Hier wird eine Konstante mit dem Namen MIN_PER_USEC mit dem Wert 60000000 definiert.


    Grüße

    Dennis

    🎧 Jetzt sitzt du den ganzen Tag zu Hause und gespannt
    wartest du darauf, dass irgendwas passiert.
    Wenn ich mal huste, klopft es gleich an der Wand,
    "Bist damals auch auf Socken in Polen einmarschiert?!" 🎧

  • Das #define in Standard-C ist eine 1:1-Ersetzung, die vom Precompiler in den Quellcode 1:1 übernommen wird.

    Die Klammer wird vor allem dann gesetzt, wenn im #define eine Formel steht, z.B. bei sowas wie #define CONST_C (CONST_A + CONST_B). Wenn nämlich im Quellcode später auf CONST_C verwiesen wird, z.B. mit x = 2 * CONST_C, resultiert das ohne Klammern in x = 2 * CONST_A + CONST_B. Wegen Punkt vor Strich (Operatorprioritäten) kommt dann für x nicht das erwartete Ergebnis heraus. Und das finde mal beim Debuggen!
    Deswegen die Klammer!

    Das ist auch der Grund, warum man #defines nicht in der gleichen Zeile kommentieren sollte: Mit // schon gleich gar nicht, sondern allenfalls mit /* ... */
    Wobei manche (neuere) Precompiler solche Kommentare entfernen, aber das tun eben nicht alle Precompiler!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!