ich bin in einem Programm auf das hier gestoßen:
1 | #define BF(x,b,s) (((x) & (b)) >> (s))
|
Mir ist klar, was hier passiert, aber wozu ist sowas gut? Was heißt BF?
|
Forum: Mikrocontroller und Digitale Elektronik Was macht (x) & (b) >> (s)?ich bin in einem Programm auf das hier gestoßen:
Mir ist klar, was hier passiert, aber wozu ist sowas gut? Was heißt BF? Hm dann lass uns mal das muntere Raten eröffnen: x ist der Paramter, b könnte eine Bitmaske sein s könnte shift heißen. Mark M. schrieb: > ich bin in einem Programm auf das hier gestoßen: >
> Mir ist klar, was hier passiert, aber wozu ist sowas gut? Was heißt BF?
Das kann dir wohl nur der Author des Codes beantworten.
Ich denke aber, dass BF Bitfield heißt. Mit dem Makro kannst du wohl x
mit b maskieren und dann um s nach rechts shiften. Ich sehe aber
eigentlich keinen Grund das in einem Makro zu tun und nicht einfach
offen zu coden. Das wäre IMO lesbarer.
Mark M. schrieb: > ich bin in einem Programm auf das hier gestoßen: >
> Mir ist klar, was hier passiert, aber wozu ist sowas gut? Was heißt BF?
Seltsame Makros kann man oft dadurch ergründen, dass man sich die
verwendenden Stellen ansieht.
Michael Buesch schrieb: > Ich sehe aber > eigentlich keinen Grund das in einem Makro zu tun und nicht einfach > offen zu coden. Das wäre IMO lesbarer. Das meine ich auch! Aber das ganze Programm ist voll mit solchen hässlichen Makros. Ist das üblich, praktisch oder sonst irgendwas? Mark M. schrieb: > Michael Buesch schrieb: >> Ich sehe aber >> eigentlich keinen Grund das in einem Makro zu tun und nicht einfach >> offen zu coden. Das wäre IMO lesbarer. > > Das meine ich auch! Aber das ganze Programm ist voll mit solchen > hässlichen Makros. Ist das üblich, praktisch oder sonst irgendwas? Kann man so nicht sagen. Zeig doch mal einen Ausschnitt, wo das eingesetzt wird. Karl heinz Buchegger schrieb: > Kann man so nicht sagen. > Zeig doch mal einen Ausschnitt, wo das eingesetzt wird. Es geht um MSP430-Programmierung. Ich hab hier ne Firmware von TI, die modifiziert werden soll. Nun ist der Quelltext nur so gespickt mit diesen Makros. Hat jemand einen Tipp, wie ich das Programm angehen soll, als Anfänger? Mark M. schrieb: > Es geht um MSP430-Programmierung. Ich hab hier ne Firmware von TI, die > modifiziert werden soll. Nun ist der Quelltext nur so gespickt mit > diesen Makros. Hat jemand einen Tipp, wie ich das Programm angehen soll, > als Anfänger? Am besten geht man sowas an, indem man sich aus dem Anfängerstatus heraushievt. Das heißt: erst mal diese Programm beiseite legen, ein C-Buch schnappen und da die ersten paar Kapitel auf dem PC durcharbeiten. Der Vorteil: Es bricht nicht alles auf einmal auf dich herein, sondern das Buch baut dein Wissen in logischen und sinnvollen Schritten auf. Das meiste von dem, was du in diesem Programm sehen wirst, ist höchst wahrscheinlich sehr simpel. Nur bricht eben alles auf einmal auf dich herein. Und dann verlierst du den Überblick. So wie beim Schach: Wenn man gleichzeitig die Figuren, ihre möglichen Züge und 8 verschiedene Eröffnungsstrategien auf einmal lernen soll, dann verliert man sich. Das ist ein sehr schöner vergleich mit schach^^ zeig mal deinen Programmausschnitt, kann dir sicher helfen. (sollst es ja nicht ganz posten :) grüße e-tec Karl heinz Buchegger schrieb: > Am besten geht man sowas an, indem man sich aus dem Anfängerstatus > heraushievt. > Das heißt: erst mal diese Programm beiseite legen, ein C-Buch schnappen > und da die ersten paar Kapitel auf dem PC durcharbeiten. Mit den C-Grundlagen hab ich kein Problem, sondern damit, dass in einer Funktion 5 Makros stehen, die nicht nur wiederum Funktionen sind, sondern auch noch alle in verschiedenen Headern stehen. Kann mir da jemand ein gutes Buch empfehlen? Also keines, das mir zum 100. Mal erklärt, was eine Funktion ist. Hello World kann ich auch schon schreiben ;-P Ich suche was, wo auch auf die praktische Anwendung, besonders µCs eingegangen wird. Ich kann lange immer die ersten Kapitel durcharbeiten, wenn dann nachher irgendwelche µC-Register mit komischen Makros abgekürzt sind. Mark M. schrieb: > Karl heinz Buchegger schrieb: >> Am besten geht man sowas an, indem man sich aus dem Anfängerstatus >> heraushievt. >> Das heißt: erst mal diese Programm beiseite legen, ein C-Buch schnappen >> und da die ersten paar Kapitel auf dem PC durcharbeiten. > > Mit den C-Grundlagen hab ich kein Problem, sondern damit, dass in einer > Funktion 5 Makros stehen, die nicht nur wiederum Funktionen sind, > sondern auch noch alle in verschiedenen Headern stehen. Und? Die sucht man sich einmal zusammen, sieht sich an was sie machen und legt sich das in Gedanken beiseite (oder aber macht sich eine Notiz auf einem Schmierzettel) > Kann mir da jemand ein gutes Buch empfehlen? Also keines, das mir zum > 100. Mal erklärt, was eine Funktion ist. Hello World kann ich auch schon > schreiben ;-P Ich suche was, wo auch auf die praktische Anwendung, > besonders µCs eingegangen wird. Ich kann lange immer die ersten Kapitel > durcharbeiten, wenn dann nachher irgendwelche µC-Register mit komischen > Makros abgekürzt sind. Das wirst du in keinem Buch finden. Denn wie ein Programmautor seine Makros nennt ist ihm überlassen. Und wenn er sie SCHMUTZDIPAP nennt, dem Compiler ist das egal. Als Leser musst du dir nur merken was die Makros bedeuten, wie sie expandieren (oder, eh schon wissen, Schmierzettel) Diese Frage > Aber das ganze Programm ist voll mit solchen > hässlichen Makros. Ist das üblich, praktisch oder sonst irgendwas? kann man daher nicht pauschal beantworten. 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.
|
|