#:将后面的 宏参数 进行字符串操作,就是将后面的参数用双引号引起来 ;
##就是用于连接,拼接。
#define PRINT(NAME) printf("token"#NAME"=%d\n", token##NAME)
int main(){
int token9=9;
PRINT(9);//printf("token""9""=%d\n",token9);
}
#include <iostream>
using namespace std;
#define TEST(pid) (cout<<para##pid<<endl);
#define TEST2(p) (cout<<#p<<endl);
int main()
{
int para3 = 3;
int para2 = 2;
TEST(2); //<==>cout<<para2<<endl;
TEST(3); //<==>cout<<para3<<endl;
TEST2(test) //<==>cout<<"test"<<endl;
TEST2("test2"); //<==>cout<<""test2""<<endl;
system("pause");
return 0;
}
第一个的输出结果是token9=9。
第二个输出结果是:
2
3
test
“test”