美文网首页我爱编程
C++中#与##的使用方法

C++中#与##的使用方法

作者: 氕氘氚0921 | 来源:发表于2018-06-05 10:48 被阅读6次

    在C++中,#的作用是将#后面的内容构成一个字符串,例如:

    int main(int argc, char *argv[])
    {
        #define STR(x)   #x
        int a=3;
        printf(STR(a));
        return 0;
    }
    

    可以看到在命令行输出为字符串“a”,如下:

    liyunlong@liyunlong:~/Test/dist$./test
    a
    

    所以在C++中#可以将一些变量名,函数名等直接生成字符串使用。
    在C++中还有##也经常遇到,##的作用是将##前面与##后面的内容做连接,构成一个新的值,这个新的值不是一个字符串,例如:

    #define MER(x1, x2)  x1##x2
    void TestFunc()
    {
        printf("TestFunc");
    }
    void Test()
    {
        printf("Test");
    }
    void Func()
    {
        printf("Func");
    }
    
    int main(int argc, char *argv[])
    {
        MER(Test, Func)();
        return 0;
    }
    

    执行程序,可以看到是运行了TestFunc这个函数。

    liyunlong@liyunlong:~/Test/dist$./test
    TestFunc
    

    所以在C++中我们可以用##来进行连接,组成一些方法名,变量名,或者类名来简化代码的写法。

    和##虽然可以简化,但是滥用的话会导致代码可能性不好,难维护。

    相关文章

      网友评论

        本文标题:C++中#与##的使用方法

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