预处理宏适合使用的地方

我们几乎总是希望用内联函数代替预处理器宏,但是有三个地方比较式适合使用预处理宏

(1)字符串定义

(2)字符串拼接

(3)标志粘贴

字符串拼接:#define DEBUG(X) cout<<#x"="<<x<<endl;//在这里字符串x和字符串=拼接在一起

上面的覅难以可以打印任何变量的值

标志粘贴:标志粘贴直接用##实现,在写代码时是非常有用的,它允许设两个标识符,并把他们粘贴在一起自动产生一个新的标识符

#define FIELD(a)  char* a##_string;int a##_size;

class Record{

       FIELD(one);

      FIELD(two);

      FIELD(three);

};

 

每次调用FIELD()宏,都将产生一个保存字符数组的标识符,和一个保存字符串长度的标识符。

posted @ 2016-06-21 18:01  阿瞒123  阅读(156)  评论(0编辑  收藏  举报