C Makros Variablen setzen und Adresse zurückbekommen

noskill

Lieutenant
Registriert
Sep. 2008
Beiträge
925
Hallo,

weiß jemand, wie ich in C mittels Makro, zum einen Variablen setze und zum anderen dann (in der gleichen define Zeile) noch einen festen Ersatzwert (in meinem Fall eine Adresse angebe)?
Das Makro soll als zum einen ein paar Bits setzen und zum anderen dann für eine Adresse stehen.
Das brauche ich, weil ich mit den gesetzten Bits eine bestimmte Adresse über einen immer gleichen Speicherbereich anspreche, der mit dem Ersatzwert deklariert wird.

Also in Pseudocode:

Code:
#define NAME <Anweisungen> <fester Ersatzwert>
 
Verstehe ich spontan aus deinem Text nicht. Erläuter mal bitte. Am besten mit einem echten Minimalbeispiel und wie du dir das dann mit Makros verpackt vorstellst.
 
Es geht darum, dass ich beim Aufrufen das Makros im Programm, erst Bits setzen will und gleichzeitig eine Variable/ Speicherbereich anspreche.
Im Programm soll das Makro dann wie eine einfach Variable oder ein Pointer verwendet werden können.
Sprich:

Code:
#define Makro1 (Bsp1 = 1; Bsp2 = 1; Bsp3 = 0;)
#define  Makro2 Variable

sollen zu einem einzigen Marko zusammengefasst werden.
So das sozusagen Makro2 nicht nur auf die Variable zugreift, sondern auch vorher die Aufgabe von Makro1 ausführt.

Im Code soll das dann einfach so aussehen, ohne dass man die Bitbelegung aus Makro1 erst voranstellen muss:
Code:
Makro2 = <neue Wert>
 
Da Makros nur brachial Text ersetzen, kannst du in deinem Fall den Code so schreiben:
#define MAKRO Bsp1=1;Bsp2=2;Bsp3=3; Variable

schreibst du dann
MAKRO=12;
Ist das gleichbedeutend mit:
Bsp1=1;Bsp2=2;Bsp3=3; Variable=12;

Willst du den Variablennamen noch angeben:
#define MAKRO(VARNAME) Bsp1=1;Bsp2=2;Bsp3=3;VARNAME

Klappt natürlich nicht als Parameterübergabe. Da musst du dir dann eine Funktion für das Bitsetzen basteln, die deine Variable als Zeiger zurückgibt.
 
Zurück
Oben