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. 如果是被替换部分只是完整标识符的一部分,则需要##与其它部分连接。