16.3.1 预处理粘合剂:##运算符

与#运算符类似,## 运算符可以用于类函数宏的替换部分。而且,##还可以用于对象宏的替换部分。##运算符把两个记号组合成一个记号。例如:

#define XNAME(n) x ## n //宏XNAME(4)将展开为x4

程序示例

#include
#define XNAME(n) x ## n 
#define PRINT_XN(n) printf("x" #n " = %d\n",x ## n);

int main()
{
    int XNAME(1) = 14; //变成int x1 =14;
    int XNAME(2) = 20;
    int x3 = 30;
    PRINT_XN(1);  //变成 printf("x1=%d\n",x1)
    PRINT_XN(2);
    PRINT_XN(3);

    return 0;
}

此中,PRINT_XN()宏用#运算组合字符串,##运算符把记号组合为一个新的标识符。

输出示例

x1 = 14
x2 = 20
x3 = 30

你可能感兴趣的:(16.3.1 预处理粘合剂:##运算符)