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);

  • 相关阅读:
    android driver开发常见的英文缩写
    简析quakeIII中利用链表实现的内存管理(1)
    链表的建立
    boson netsim5.31平台上组建交换式网络
    第六周周记
    价值观作业
    C语言的知识与能力的自评
    学习进度表
    Web表格部分内容
    线性表部分知识
  • 原文地址:https://www.cnblogs.com/dragon2012/p/3884579.html
Copyright © 2011-2022 走看看