重複の可能性:
C プリプロセッサと連結
私はマクロを持っています
#define BUS B
BUS_PORT
に展開するマクロを作りたいPORTB
。
私は次のことをしました:
#define BUS_PORT PORT ## BUS
しかし、BUS_PORT
に展開しPORTBUS
ます。私は何を間違えましたか?それを正しくする方法は?
重複の可能性:
C プリプロセッサと連結
私はマクロを持っています
#define BUS B
BUS_PORT
に展開するマクロを作りたいPORTB
。
私は次のことをしました:
#define BUS_PORT PORT ## BUS
しかし、BUS_PORT
に展開しPORTBUS
ます。私は何を間違えましたか?それを正しくする方法は?
この回答で説明されているように、追加レベルの間接化が必要です。例えば
#define BUS B
#define PASTER(x,y) x ## y
#define EVALUATOR(x,y) PASTER(x,y)
#define BUS_PORT EVALUATOR(PORT, BUS)