C,找到一个定义的中间值

问题描述 投票:0回答:1

给出以下定义:

#define foo bar
#define bar 2

#define reg_bar 4

我正在尝试创建一个给定define foo的宏,找到define reg_bar,4的值。

我尝试过:

#define foo_bar(value) reg_##value

foo_bar(foo) 

但是它不起作用,因为它返回reg_foo。

还有这个

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

foo_bar_2(foo) 

但是它仍然无法正常工作,因为它返回reg_2

无论如何,仅使用宏和预处理器吗?

感谢您的帮助:)

macros c-preprocessor
1个回答
0
投票

可悲的是,没有。没有“中间值”之类的东西。令牌序列是否扩展? ##抑制扩展,但是没有什么抑制扩展的“一部分”。

© www.soinside.com 2019 - 2024. All rights reserved.