#define verständnisfrage

Hi,
ich habe hier eine header datei wo folgendes bei den global defines steht.

#define testclk(id) (BYTE*) &COCR##id

Wozu sind die 2 ## hinter COCR, sind das platzhalter?

und dann nochwas

#define testclk_ch0 (BYTE*) 0x0025

was macht diese zeile rein theoretisch?

hoffe mir kann jemand klarheit verschaffen :smile:

Gruß
Marco

Hallo Marco,

#define testclk(id) (BYTE*) &COCR##id

Wozu sind die 2 ## hinter COCR, sind das platzhalter?

Nein, das ist eine Zeicheketten-operation:

Also aus dem Aufruf

testclk(1A2B)

erzeugt dann der Preprocessor:

(BYTE*) &COCR1A2B

und dann nochwas

#define testclk_ch0 (BYTE*) 0x0025

was macht diese zeile rein theoretisch?

An der absuluten Speicheradresse 0x0025 ist ein Wert von Typ BYTE abgelegt.

MfG Peter(TOO)

Hallo!

#define testclk_ch0 (BYTE*) 0x0025

was macht diese zeile rein theoretisch?

An der absuluten Speicheradresse 0x0025 ist ein Wert von Typ
BYTE abgelegt.

Nö. Jedes Vorkommen von „testclk_ch0“ wird durch das define textuell durch „(BYTE*) 0x0025“ ersetzt. Mit absoluter Speicheradresse hat das nichts zu tun.

Grüße
Mathemat