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...
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?
> 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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.