C、求a define的中间值

C, Find the intermediate value of a define

给定以下定义:

#define foo bar
#define bar 2

#define reg_bar 4

我正在尝试创建一个给定定义 foo 的宏,找到定义 reg_bar、4.

的值

我试过这个:

#define foo_bar(value) reg_##value

foo_bar(foo) 

但它不起作用,因为它 returns reg_foo。

还有这个

#define foo_bar(value) reg_##value
#define foo_bar_2(value) foo_bar(value)

foo_bar_2(foo) 

但是还是不行 returns reg_2

有没有办法只用宏和预处理器?

感谢您的帮助:)

遗憾的是,没有。没有 "intermediate value" 这样的东西。一个令牌序列要么扩展要么不扩展; ## 抑制扩展,但没有任何东西抑制 "part of" 扩展。