举个代码例子讲得清楚。
#include <iostream>
using namespace std;
#define toChar(c) (/*#mac#*/ c)
int main(int argc,char **argv) {
cout << toChar(?) << endl;
return 0;
}
注释的那部分填上,将输出语句改成cout << '?' << endl;
,注意是 字符 不是 字符串 ##
。
#include <iostream>
using namespace std;
#define toChar(c) (/*#mac#*/ c)
int main(int argc,char **argv) {
cout << toChar(?) << endl;
return 0;
}
注释的那部分填上,将输出语句改成cout << '?' << endl;
,注意是 字符 不是 字符串 ##
。
#define to_char(a) (@#(a)) //将一个一位数转换成字符
#define to_string(a) (#(a)) //将一个多位数转换成字符串
#define string_cat(a, b) ((a)##(b))//将两个字符串连接
int main() {
cout << string_cat( to_string(3.141592), to_char(6) );
return 0;
}
3.1415926
注:在#define宏中,#代表加上双引号,@#代表加上单引号, ##代表连接。