宏define替换场景

来源:互联网 发布:js事件代理和事件委托 编辑:程序博客网 时间:2024/05/13 01:50
class Foo {  public:    void test() {      std::cout << "sdfsdf" << std::endl;    }   };#define CALL(method) \   client.method()#define A(x) x##1int main(int argc, char *argv[]) {  int y1 = 100;  cout << A(y)  <<endl;  Foo client;  CALL(test);  return 0;}


1. 如果是完整标识符替换,则不需要 ##连接。

2. 如果是被替换部分只是完整标识符的一部分,则需要##与其它部分连接。


原创粉丝点击