Gast
#181571
Schon oft habe ich in Programmen bei Angaben der Quarzfrequenz ein großes L gesehen (so wie oben im Betreff). Warum steht es an dieser Stelle?
|
Anzeige
|
XTAL = 12000000L
Gast
#181571
Schon oft habe ich in Programmen bei Angaben der Quarzfrequenz ein großes L gesehen (so wie oben im Betreff). Warum steht es an dieser Stelle?
Gast
#181572
Das steht da, weil die Konstante eine "long"-Konstante ist. Konstanten ohne dieses Suffix werden von C/C++-Compilern als "int"-Konstante behandelt; bei vielen Architekturen ist "int" aber nur 16 Bit groß und also unfähig, Werte größer 32767 (Vorzeichen!) zu behandeln. Klar?
Gast
#181573
Hi, Ralf, aus Kernighan&Ritchie: "Eine ganzzahlige Konstante, der unmittelbar das Zeichen "l" oder "L" (Buchstabe l) folgt, ist auf jeder Maschine long. Die Konstante kann dabei dezimal, oktal oder hexadezimal definiert sein" Ich hatte mich damit erst beschäftigt, als ich mit einem Makro Konstanten zur Quarzfrequenz und Baudzahl umrechnen wollte in die Zahlen, die in UBRRL und UBRRH zu stehen haben. Wenn Du Präprozessor und Compiler nicht genau sagst, daß er LONG-Zahlen neben soll, dann wird das Ergebnis anders als gewollt. Ciao Wolfgang
Gast
#181574
Uhhh... ja, danke jetzt ist mir das klar! Ich hatte einfach mal versuchsweise das L gelöscht... und dann gings nicht mehr! Danke! Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|