宏define替换场景

class Foo {
  public:
    void test() {
      std::cout << "sdfsdf" << std::endl;
    }   
};

#define CALL(method) \
   client.method()

#define A(x) x##1
int main(int argc, char *argv[]) {
  int y1 = 100;
  cout << A(y)  <<endl;

  Foo client;
  CALL(test);
  return 0;
}


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

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


你可能感兴趣的:(宏define替换场景)