【发布时间】:2026-01-20 20:15:01
【问题描述】:
#define PACKAGE Package123
#define TEST_SUITE_NAME_PACKAGE(Suite,Package) Suite##_##Package
#define TEST_SUITE_NAME(Suite) TEST_SUITE_NAME_PACKAGE(Suite,PACKAGE)
#define SUITE_NAME TEST_SUITE_NAME(UtilitiesTest)
我希望SUITE_NAME 评估为UtilitiesTest_Package123,但经过多次变化后,我仍然得到UtilitiesTest_PACKAGE。
注意:SUITE_NAME 将用作标识符,而不是字符串。我搞砸了 # 和 ## 运算符,但似乎没有任何效果。
【问题讨论】:
-
这一定是个骗子,但我不知道我要搜索什么!
-
任何代表 PP concat 的东西。
-
这行得通吗?
Suite ## _ ## Package -
@alk 我不这么认为,因为我确实不想要将它串起来?
-
@John,同样的想法;它也提到了连接。
标签: c++ visual-c++ visual-studio-2008 c-preprocessor