有关#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;