Gast
#363123
was bedeutet das _BV im ausdruck ADCSRA|=_BV(ADIE). man könnte das ja auch ohne _BV bewerkstelligen. mfg kalrheinz
|
Anzeige
|
was bedeutet "_BV"
Gast
#363123
was bedeutet das _BV im ausdruck ADCSRA|=_BV(ADIE). man könnte das ja auch ohne _BV bewerkstelligen. mfg kalrheinz _BV ist wohl ein Macro, das so aussieht: #define _BV(a) ((1 << a)) ... das vermute ich jedenfalls mal so. Es steht wohl für "bit value", so ganz genau weiß das keiner mehr. :-) "bit mask" wäre eigentlich besser...
Gast
#363126
Gab's denn man einen Grund für so ein Makro? IMHO hilft das einem beim Programmieren ja nicht allzu viel: - Gleiche Menge Text _BV(a) statt (1<<a) - Aus dem Namen wird niemand schlau (daher kommt ja wohl der Thread) Aber vielleicht entgeht mir ja was Entscheidendes?
Gast
#363127
> Es steht wohl für "bit value", so ganz genau weiß das keiner > mehr. :-) "bit mask" wäre eigentlich besser... Bit value passt eigentlich schon. Man gibt die Nummer eines Bits an, und das Makro gibt dessen Wertigkeit zurück. "mask" passt nicht, da so eine normalerweise aus mehreren Bits besteht, _BV sich aber immer nur um ein einzelnes kümmert. > Gab's denn man einen Grund für so ein Makro? Ich denke, es sollte der Lesbarkeit dienen. >> Gab's denn man einen Grund für so ein Makro? > Ich denke, es sollte der Lesbarkeit dienen. Sehe ich auch so. Die meisten Leute würden ja "(1 << X)" schreiben (mit Leerzeichen), da ist "_BV(X)" ein wenig kürzer, vor allem, wenn's um mehrere Bits in einem Byte geht. (War auch mal BV statt _BV, aber Marek Michalkiewicz fand das seinerzeit ein zu großes Kollisionsrisiko mit Namen im Nutzerprogramm.) Die Benutzung ist natürlich Geschmackssache, ich würde da keine Religion draus machen.
Gast
#363129
Nein, eine Religion sollte man da genauso wenig draus mache, wie aus der Position der geschweiften Klammern :) Ich hatte nur (historisch) mehr dahinter vermutet als anscheinend dahinter steckt. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|