0

重複の可能性:
C プリプロセッサと連結

私はマクロを持っています

#define BUS B

BUS_PORTに展開するマクロを作りたいPORTB

私は次のことをしました:

#define BUS_PORT PORT ## BUS

しかし、BUS_PORTに展開しPORTBUSます。私は何を間違えましたか?それを正しくする方法は?

4

1 に答える 1

1

この回答で説明されているように、追加レベルの間接化が必要です。例えば

#define BUS B
#define PASTER(x,y) x ## y
#define EVALUATOR(x,y) PASTER(x,y)
#define BUS_PORT EVALUATOR(PORT, BUS)
于 2012-12-18T18:31:10.607 に答える