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" 扩展。
给定以下定义:
#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" 扩展。