【问题标题】:What is the ## operator? [duplicate]## 运算符是什么? [复制]
【发布时间】:2012-05-07 02:54:22
【问题描述】:

可能重复:
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;    \
        }

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

【问题讨论】:

    标签: c++


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 2017-06-09
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      相关资源
      最近更新 更多