Forum: Compiler & IDEs was bedeutet "_BV"


von karlheinz (Gast)


Lesenswert?

was bedeutet das _BV im ausdruck ADCSRA|=_BV(ADIE).

man könnte das ja auch ohne _BV bewerkstelligen.


mfg
kalrheinz

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

_BV ist wohl ein Macro, das so aussieht:

#define _BV(a) ((1 << a))


... das vermute ich jedenfalls mal so.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Es steht wohl für "bit value", so ganz genau weiß das keiner
mehr. :-)  "bit mask" wäre eigentlich besser...

von Ingo (Gast)


Lesenswert?

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?

von Rolf Magnus (Gast)


Lesenswert?

> 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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

>> 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.

von Ingo (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.