什么是##运算符?

时间:2012-05-07 02:54:23

标签: c++

  

可能重复:
  What does ## mean for the C(C++) preprocessor?

#define SIMPLE16_DESC_FUNC1(num1, log1) \
    bool                            \
    Simple16::try##num1##_##log1##bit(uint32_t *n, uint32_t len)    \
    {                                       \
            uint32_t        i;              \
            uint32_t        min;            \
\
            min = (len < num1)? len : num1; \
\
            for (i = 0; i < min; i++) {     \
                    if (int_utils::get_msb(n[i]) > log1 - 1)        \
                            return false;   \
            }               \
\
                return true;    \
        }

我在某人的代码中发现了这个代码,似乎“##”运算符在函数名中起着重要作用。有谁告诉我它的用途是什么?

1 个答案:

答案 0 :(得分:4)

这是token pasting operator。它连接两个令牌,其中一个是宏的参数。