有关#define中的#和##

   在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符串。

   

 1 #include <iostream>
 2 #include <fstream>
 3 using namespace std;
 4 #define D(A) T<< #A << endl;
 5 inline void assure(std::ofstream &in, const char* filename="")
 6 {
 7     if(!in)
 8     {
 9         fprintf(stderr,"could not open file %s \n",filename);
10         exit(1);
11     }
12 }
13 int main()
14 {
15      ofstream T("format.out");
16      assure(T);
17      D(int i = 47;);
18     return 1;
19 }

输出到文件

int  i=47;

原文地址:https://www.cnblogs.com/churi/p/2867384.html