C++中的##使用

 ##用于连接两个字符串,如:

  1. #define DEF(t) "str"##t
  2. int main(array<System::String ^> ^args)
  3. {
  4.     char ch[] = DEF("123");
  5.     cout << ch << endl;
  6.     getchar();
  7.     return 0;
  8. }

 

返回:str123

 

但,下面会提示编译错误:

  1. #define DEF(t) "str"##t
  2. int main(array<System::String ^> ^args)
  3. {
  4.     string str = "123";
  5.     char ch[] = DEF(str);
  6.     cout << ch << endl;
  7.     getchar();
  8.     return 0;
  9. }

 

原因就是#define只是简单的替换,不会去取值

你可能感兴趣的:(C++,String)