zoukankan      html  css  js  c++  java
  • C++ #和##运算符

    原文:https://blog.csdn.net/mitu405687908/article/details/51084441 
    #和##运算符
    #:构串操作符
    构串操作符#只能修饰带参数的宏的形参,它将实参的字符序列(而不是实参代表的值)转换成字符串常量

    #define STRING(x) #x#x#x
    #define TEXT(x) "class"#x"Info"
    //宏引用:
    int abc = 100;
    STRING(abc);
    TEXT(abc);
    //替换结果:
    abcabcabc
    classabcInfo


    ##:合并操作符
    合并操作符##将出现在其左右的字符序列合并成一个新的标识符
    注意:
    使用合并操作符##时,自身的标识符必须预先有定义,否则编译器会报“标识符未定义”的编译错误。
    字符序列合并成新的标识符不是字符串。

    #define CLASS_NAME(name) class##name
    #define MERGE(x,y) x##y##x
    //宏引用:
    CLASS_NAME(Timer)
    MERGE(me,To)
    //替换结果:
    classTimer
    meTome

  • 相关阅读:
    病毒
    最短母串
    单词
    Censoring
    玄武密码
    Keywords Search
    聚会
    异象石
    暗的连锁
    pat 1048. Find Coins (25)
  • 原文地址:https://www.cnblogs.com/CityLcf/p/9913751.html
Copyright © 2011-2022 走看看