美文网首页
16.3.1 预处理粘合剂:##运算符

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

作者: 日常表白结衣 | 来源:发表于2017-07-24 19:55 被阅读0次

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

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

    程序示例

    #include<stdio.h>
    #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 预处理粘合剂:##运算符

          本文链接:https://www.haomeiwen.com/subject/ehfikxtx.html