【发布时间】:2010-11-11 02:10:38
【问题描述】:
我正在编写一堆相关的预处理器宏,其中一个生成标签,另一个跳转到。我以这种方式使用它们:
MAKE_FUNNY_JUMPING_LOOP(
MAKE_LABEL();
MAKE_LABEL();
)
我需要一些方法来生成唯一标签,每个内部 MAKE_LABEL 调用一个,使用预处理器。我试过使用__LINE__,但由于我在另一个宏中调用MAKE_LABEL,它们都有相同的行并且标签会发生冲突。
我希望将其扩展为:
MAKE_FUNNY_JUMPING_LOOP(
my_cool_label_1: // from first inner macro
...
my_cool_label_2: // from second inner macro
...
)
有没有办法使用预处理器生成散列或自增整数?
【问题讨论】:
-
我正在使用 ICC(STM 原型 3.0;我认为是基于 v11)。
标签: macros c-preprocessor