C中的宏用胶水常数

时间:2012-12-18 18:21:22

标签: c

  

可能重复:
  C preprocessor and concatenation

我有宏

#define BUS B

我想将宏BUS_PORT扩展为PORTB

我做了以下事情:

#define BUS_PORT PORT ## BUS

BUS_PORT扩展为PORTBUS。我做错了什么?怎么做对了?

1 个答案:

答案 0 :(得分:1)

this answer中所述,您需要额外的间接级别。 E.g。

#define BUS B
#define PASTER(x,y) x ## y
#define EVALUATOR(x,y) PASTER(x,y)
#define BUS_PORT EVALUATOR(PORT, BUS)