zoukankan      html  css  js  c++  java
  • #define中的特殊符号

    (关于#define的用法,看这里 http://www.cppblog.com/kenny/archive/2011/04/26/145087.html)

    #define Conn(x,y) x##y
    #define ToChar(x) #@x
    #define ToString(x) #x

    x##y表示什么?表示x连接y,举例说:
    int n = Conn(123,456);   结果就是n=123456;
    char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";

    再来看#@x,其实就是给x加上单引号,结果返回是一个const char。举例说:
    char a = ToChar(1);结果就是a='1';
    做个越界试验char a = ToChar(123);结果就错了;
    但是如果你的参数超过四个字符,编译器就给给你报错了!error C2015: too many characters in constant   :P

    最后看看#x,估计你也明白了,他是给x加双引号
    char* str = ToString(123132);就成了str="123132";

    ---------------示例------------------

    class CTest
    {
    public:
        CTest(const unsigned char ucAttrType, int pFun)
        {
            cout << "in CTest" << endl;
        }

        ~CTest(){}
    };

    //注册计算算法
    #define REG_FUN(attrtype, pFun) /
        static CTest s_stCTest##attrtype(attrtype, pFun);

  • 相关阅读:
    Thinkphp注释
    THINKPHP5 如何在 控制器内调用model模型
    thinkphp5路由定义
    Thinkphp5读取当前config配置文件
    thinkphp5计算代码块的性能
    thinkphp的执行流程
    php filter过滤器
    nginx在收到stop信号后的处理
    寻找重复数
    奶牛和公牛
  • 原文地址:https://www.cnblogs.com/dragon2012/p/3884579.html
Copyright © 2011-2022 走看看