将宏中的参数字符串化

问题描述

#define MY_ASSERT_TEST(para,parB,parC) do {                                           \
    for (int i = 0; i < TestStruct::parB::TestData_parC_TestOptions_Len; i += 1)        \
    {                                                                                   \
        if (para == TestStruct::parB::TestData_parC_TestOptions_i)                      \
            return;                                                                     \
    }                                                                                   \
    MY_LOG("MY_ASSERT_TEST Warning: %s",#para);                                        \
} while(0)

它正确替换了 parB,但没有替换 parCi

我尝试过类似 TestStruct::parB::TestData_#parC_TestOptions_#i方法

TestStruct::parB::TestData_(#parC)_TestOptions_(#i)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)