Bedeutung von ##

#1079356
Lesenswert?

Hallo,

im Quelltext von Shaoziyang eines Bootloaders ( 
http://groups.google.com/group/avrub?hl=en ) bin ich auf Zeilen wie 
folgt gestossen:
1
//internal use macro
2
#define CONCAT(a, b)       a ## b
3
#define CONCAT3(a, b, c)   a ## b ## c
4

5
//register of PORT and bit define
6
#define PORTREG(No)        CONCAT(PORT, No)
7
#define PINREG(No)         CONCAT(PIN, No)
8
#define UDRREG(No)         CONCAT(UDR, No)

Was bedeuted das ## ? Hab ich so noch nie gesehen.

MfG
Moderator Persönliche Seite #1079363
Lesenswert?

Frank Heluk wrote:

> Was bedeuted das ## ? Hab ich so noch nie gesehen.

Das gibt es aber seit ANSI-C89/ISO-C90 bereits.  Außerdem ist der
Name des Makros, in dem es benutzt wird, eigentlich selbst
erklärend: `concat'.  Es verbindet die beiden Seiten zu einem Symbol
auf Präprozessorebene.  Damit kann man also beispielsweise aus den
Teilstücken ,PORT' und ,A' das Symbol ,PORTA' generieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren